Gilberto Junior · Jun 25, 2019 go to post

Everardo, bom dia.

Desculpa mas pra te falar a vdd nem sei o que é Server-Sent Events 

Consegue mandar um exemplo do que isso faria

Gilberto Junior · Feb 5, 2019 go to post

Hi, Krishna muthu.

This is the only ESB adapter that I do not use, because debugging esb ends up taking many steps to create a
% Net.HttpRequest. With this we adopt the strategy of making the requisitions manually.

Sorry for the mistakes this message has been translated by google translate.

Gilberto Junior · Feb 4, 2019 go to post

Hi

Here is the code I use:

Set tHttpRequest = ## class (% Net.HttpRequest). New ()
From tHttpRequest.ContentTypeSet ("application / json")
From tHttpRequest.SetHeader ("Authorization", "Basic [Base64String]")
From tHttpRequest.ContentCharsetSet ("utf-8")
From tHttpRequest.EntityBody.Write (tJsonTxt)

Gilberto Junior · Oct 22, 2018 go to post

Your screen print shows the serRadiology service call to the proPCMAttributeRadiology process as asynchronous.
For this reason you do not have Message Queuing
Sorry for any mismatch, as this message has been translated by Google Translate
Thank you

Giba.

Gilberto Junior · Oct 18, 2018 go to post

Hi John
In this case the problem is not in BP but in your BS asynchronous.
Try a test by swapping your BS call to sync.
After this change the messages will start to queue within your BP
Sorry for any mismatch, as this message has been translated by Google Translate

Obrigado Giba.

Gilberto Junior · Sep 14, 2018 go to post

Hi,

Use this Example code

Class Rest.UsuarioSvc Extends %CSP.REST
{

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
<Route Url="/Oi/:xpto" Method="GET" Call="Oi"/>
</Routes>
}

ClassMethod Oi(xpto As %String) As %Status
{
    Set tSC = $$$OK
    
    If 'tSC Quit tSC       
    Set tProxy = ##class(%ZEN.proxyObject).%New()
    Set tProxy.Oi = xpto _ "1234"
    
    Set %response.ContentType = "application/json"
    set %response.Status = 200
    Do tProxy.%ToJSON()
    
    Quit tSC
}

}
 

Gilberto Junior · Sep 14, 2018 go to post

Hi.

rror 405 refers to method not allowed.
Probably this being invoked a method that only supports GET as a POST.

Gilberto Junior · Sep 14, 2018 go to post

Class Rest.EmailSvc Extends %CSP.REST
{

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
    <Route Url="/TesteQuery/" Method="GET" Call="TesteQueryString"/>
</Routes>
}

ClassMethod TesteQueryString() As %Status
{
    Set tSC = $$$OK
    
    If 'tSC Quit tSC       
    Set tProxy = ##class(%ZEN.proxyObject).%New()
    Set tProxy.Discipline = $Get(%request.Data("Discipline", 1))
    Set tProxy.TestCode = $Get(%request.Data("TestCode", 1))
    
    Set %response.ContentType = "application/json"
    set %response.Status = 200
    Do tProxy.%ToJSON()
    
    Quit tSC
}

}
 

Gilberto Junior · Sep 13, 2018 go to post

At first your code is correct.
Here's a MOC created when I developed this kind of integration.
Class HslBus.Msg.AdService.ValidaLogin.Response Extends %Persistent
{
Property LoginAtivo As %Boolean;

}

In Other Class I'm created this Method:

ClassMethod ValidarLogin(pRequest As HslBus.Msg.AdService.ValidaLogin.Request, Output pResponse As HslBus.Msg.AdService.ValidaLogin.Response) As %Status
{
set pResponse = ##class(HslBus.Msg.AdService.ValidaLogin.Response).%New()
set BaseDN="DC=Server,DC=pvt"
set Filter="(&(objectCategory=person)(objectClass=user) (sAMAccountname=" _ pRequest.Usuario.Login _ "))"
set Attributes=""
set ServerTimeout=5000
set LD=##Class(%SYS.LDAP).Init("hsl.pvt",389)
Set Status0=##Class(%SYS.LDAP).Binds(LD,"",$lb(pRequest.Usuario.Login,"Server.pvt",pRequest.Usuario.Senha),$$$LDAPAUTHNEGOTIATE)
set checkFilter=##class(%SYS.LDAP).CheckFilter(LD,Filter)
set Status=##Class(%SYS.LDAP).SearchExts(LD,BaseDN,$$$LDAPSCOPESUBTREE,Filter,"",0,"","",10,0,.SearchResult)
if (Status = $$$LDAPSUCCESS){
set pResponse.LoginAtivo = 1
}
else{
set pResponse.LoginAtivo = 0
}
quit $$$OK
}


To verify this type of support when I developed an LDAP integration I used the LDAP Admin available at http://www.ldapadmin.org/
If you also do not connect to AD, check with the infrastructure team if AD is enabled to receive LDAP connections.

Gilberto Junior · Sep 13, 2018 go to post

Hi 

Try the function


## Class (% SYS.LDAP) .Err2String (7)

Try the function, using the return code in place of 7 below
## Class (% SYS.LDAP) .Err2String (7)
My Caché is in Portuguese

This post has been translated by Google Translate, sorry for writing errors

Gilberto Junior · Jun 6, 2018 go to post

Hi.
On the server, check the user access permissions used by the cache in the operating system for the mapping path

Gilberto Junior · Jun 6, 2018 go to post

Hi.

there is no way to know which is the last line, since each
  return line becomes a message in a unique single session on the bus.
To have control over the data packet returned by the database, in this case it would be interesting to return the data through a BusinessOperation and iterate over the list returned through a Business Process.
Sorry for the mistakes because this message was translated by Google Translate

Gilberto Junior · Jun 5, 2018 go to post

I did not find the feature however I was able to do this by giving permission for updatena table Security.Users through the SQL Tables tab.
If you want to do this for a group you can create a Resource custon and release it.

Gilberto Junior · Jun 5, 2018 go to post

ok just be careful with this table so do not kill all users.
I recommend a backup of the file \ mgr \ CACHE.DAT responsible for storing users in Caché

Gilberto Junior · Jun 5, 2018 go to post

Hi.

Use this code in namespace %sys:

update Security.Users set FullName =  'GOKU', Comment= 'Oi eu sou o GOKU' where id = 'gsjunior'

where the ID is the user login
Gilberto Junior · Jun 5, 2018 go to post

Hi in this case I have already used a function that returns a string, with this I came to a utility very similar to the switch case of other languages Sorry for the possible inconsistency in the response, it was translated by google translator

Example:

Class Case.Teste Extends %SerialObject
{
ClassMethod Teste(pReq As %Integer)
{
WRITE $CASE(pReq,
              1:..Oi(),2:..Tchau(),: ..GOKU())
}
ClassMethod Oi() As %String
{
Quit "OI sou do Brasil"
}
ClassMethod Tchau() As %String
{
Quit "Um abraço"
}
ClassMethod GOKU() As %String
{
Quit "Oi Eu sou o GOKU"
}
Storage Default
{
<StreamLocation>^Case.TesteS</StreamLocation>
<Type>%Library.CacheSerialState</Type>
}
}

USER>do ##Class(Case.Teste).Teste(1)
OI sou do Brasil


USER>do ##Class(Case.Teste).Teste(2)
Um abraço


USER>do ##Class(Case.Teste).Teste(3)
Oi Eu sou o GOKU


USER>