As intimated you can map the lookup tables at the base global.

We do this because we have many productions all requiring the same set of lookup tables. We also have common credentials across all our namespaces as shown in the above above global mappings

We also use a common database to store all of our code to enhance code reuse and reduce copying of classes across namespaces.

Its a very common coding issue. I achieve what you are trying to do by this construct

Method DoStuff() As %Status
{
  set tSC = $$$OK

  do {

    set tSC = method_invocation1()
    quit:$$$ISERR(tSC) 

    set tSC = method_invocation2()
    quit:$$$ISERR(tSC)

  } while 0
  quit tSC
}
 

This enables you to exit at the first issue with the relevant status.
The do while loop is just there to act as a 'container' for the code so you can jump out of it with a quit with no arguments, it can be replaced with a try catch block.

Assume you have a business service called 'ServiceOne' in your production which is adapterless

You then just need the following code to call it..

set st = ##class(Ens.Director).CreateBusinessService("ServiceOne", .theService)
quit:$$$ISERR(st) // or whatever you want on an error
set st = theService.ProcessInput(request, .response)
​quit:$$$ISERR(st) // or whatever you want on an error