Article Kurro Lopez · Feb 4, 2023 2m read

Usualy, if you want to deploy a solution, you need to add the items, configure your lookup tables and default configuration manually. 
It's okay if you have all the permissions and privileges to perform these actions. If you want to deploy to a client's production server, and you don't have the permissions, you need to indicate in a document ALL the steps that the deployment manager has to perform. 

0
0 361
Question Kurro Lopez · Sep 19, 2022

Hi community,

I have to do a development that should to connect with a external REST API and it throws different HttpStatus and a body content with the description of the problem.

I'm using the following code:

set tSC = ..Adapter.SendFormDataArray(.tHttpResponse,"POST",tHttpRequest,,,URL)

If the external API responses throws a 400 Status (Bad Request)

the tSC values is an error status and the value of tHttpResponse is empty, so I'm not able to check what is the Status Code and the content.

tSC="0 "_$lb($lb(5002,"<WRITE>zSend+120^%Net.HttpRequest.
2
0 457
Question Kurro Lopez · Jul 21, 2022

Hi all,

I've just  update the version of WebTerminal using the link, but now it doesn't work.

When call to /terminal is displaying the following error:

{
    "errors":[ {
            "code":5002,
            "domain":"%ObjectErrors",
            "error":"ERROR #5002: Error de cache: <INVALID OREF>zWrite+5^WebTerminal.StaticContent.1",
            "id":"ObjectScriptError",
            "params":["<INVALID OREF>zWrite+5^WebTerminal.StaticContent.1"
            ]
        }
    ],
    "summary":"ERROR #5002: Error de cache: <INVALID OREF>zWrite+5^WebTerminal.StaticContent.
3
0 323
Article Kurro Lopez · Mar 4, 2022 4m read

Time travel is like visiting Paris. You can't just read the guide, you have to throw yourself into it. Eat the food, use the wrong verbs, get double the charges, and end up kissing complete strangers.

The Doctor

We are now going to travel through time, that is, we are going to see future and past dates and how to calculate them in different formats. The TARDIS doesn't wait, take the controls and hold on tight.

Travel in TARDIS

5
0 627
Article Kurro Lopez · Mar 1, 2022 5m read

Good men don’t need rules.

The Doctor.

It's not an easy task to be a master of dates and times, it is always a problem and sometimes confusing in any programming language, we are going to clarify and put a few tips to make this task as simple as possible.

Get on the TARDIS and I'm going to turn you into a Time lord

Tardis

3
1 867
Question Kurro Lopez · Feb 17, 2022

Hi all,

I have a rule to throw a message when there is an error. I want to prevent send the email if the origin of the error is the API to send the email

This is my rule

Now, If there is any error in any process, it works, but if there is an error in MyProduct.BO.SendEmail it is trying to send the error again, and it is a infinite loop.

Is there any way to check what is the origin and don't process if the origin is MyProduct.BO.SendEmail?

I've tried to set a condition in when node but it doesn't catch any property of Ens.AlertRequest

It doesn't work.

2
0 398
Question Kurro Lopez · Nov 4, 2021

Hi all,

I have a process that recive a datetime in ISO 8601 format (YYYY-MM-DDThh:mm:ss+001) to %timestamp value.

Example: set myDatetime  = "2021-11-04T11:10:00+0100"

I've triyed use $SYSTEM.SQL.CONVERT(myDatetime,"SQL_TIMESTAMP") but it doesn't work.

Any idea?

Regards,
Kurro Lopez

7
0 1111
Question Kurro Lopez · Oct 29, 2021

Hi all.

I'm trying to create a route rule that can call to a web service according to a parameter of a message.

My first attempt is the following:

I have a common class with all information, BuscarHuecoRequest, and check what is the value of property "CodigoProveedor".

The table T_PROVEEDOR contains the list of code with the code of the provider, if is F, calls to WSF, if is C, calls to WSC, etc... Using a transformation to convert the values to this provider.

It raises an error, because the property CodigoProveedor doesn't

1
0 327
Question Kurro Lopez · Sep 23, 2021

Hi community,

I have a SOAP Client class that connect to a WS Service. This structure and configuration is the same for some providers that are integrated with my solution.

If I call to a provider, it returns the XML expected. But there is a provider that raises an error:

ERROR #6243: HTTP request to SOAP WebService returned response with unexpected CONTENT-TYPE: application/wsdl+xml

I've tried to set the ContentType to the adapter.%Client with this value, but it doesn't work.

3
0 440
Question Kurro Lopez · Apr 23, 2021

Hello everyone,

I don't want to believe that Intersystems didn't add a method/process/rule to sort alphabetically a list of names (in array, $ LB or whatever)

I haven't found any documentation about this. I've even tried comparing two strings but have not found a solution.

My cry for help is...

Does exists any command to compare two strings and check if one of them is lower or upper according to aphabet?

Please, give me a light in this dark

Best regards.
Kurro Lopez

7
0 1249
Question Kurro Lopez · Mar 10, 2021

Hi all,

I have a very weird error when I'm calling to a SOAP Webservice as client.

I've create all objects to invoke to this SOAP using the add-in "Assistant SOAP" in Eclipse, it has created all objects (Response, Request, Business operation WS class, etc...).

When I call to this service it retuns the following error message:

ERROR #6243: HTTP request to SOAP WebService returned unexpected CONTENT-TYPE response: text/html.

However, If I call the same WS using SOAP UI or Postman, the header of response has the content-type "text/xml", as expected.

What is

4
0 5112
Question Kurro Lopez · Feb 25, 2021

Hi all,

I have a API operation that is calling to a external process. The answer is a big json but I only want a pice of the full content.

My first attempt is:

.....
// The code of prepare the request is omitted.
set tSC = ..Adapter.SendFormDataArray(.tHttpResponse,"POST",tHttpRequest,,,tURL)
if $$$ISERR(tSC) $$$ThrowStatus(tSC)
// Get the response directly
set response = ""
while (tHttpResponse.Data.AtEnd = 0) {
    set response = respuesta_tHttpResponse.Data.Read()
}
// Convert Json to generic object, get the node returnValue.data and convert to JSon again
set objJson =
2
0 309
Question Kurro Lopez · Apr 17, 2020

Hi all,

I have a class that has been working so far :(

The class extends the EnsLib.RecordMap.Service.FTPService class and add some information for each rows.

Now, when it saves the object it is raising the following error

ERROR #5803: Failed to acquire exclusive lock error

I've seen the other question in the community and I've tried to unlock

do##class(my.class).%UnlockExtent(0,1)
but it doesn't work
 
Any idea?
 
Best regards
5
0 1741
Question Kurro Lopez · Oct 30, 2019

Hello,

We need to create a versioning of an existing API, so we going to set a default version (so far) for current connections to version 1

My first attempt is:

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
    <Route Url="(?i)/check" Method="GET" Call="CheckApi"/>
    <Route Url="(?i)/getcustomer" Method="POST" Call="GetCustomerDefault"/>
    <Route Url="(?i)/revoke" Method="DELETE" Call="RevokeDefault"/>
    <Route Url="(?i)/:version/getcustomer" Method="POST" Call="GetCustomer"/>
    <Route Url="(?
5
0 550
Question Kurro Lopez · Sep 4, 2019

Hello everyone,

We have a process that is listening to an FTP service to collect some CSV files and process them. The process works correctly and when it ends it clears the directory waiting for it to enter some other file.

We have been receiving the following error message for a long time:

ERROR <Ens>ErrGeneral: Error in SFTP Dir() ERROR #7500: Error DirEnum SSH '-2146430967': 'SSH Error [80101009]: Would block waiting for status message [80101009] at SFTP.cpp:150,0

This happens when there are no files to process and appears from time to time, maybe every 20 minutes.

4
0 1012
Question Kurro Lopez · May 22, 2019

Hi all,

I am trying to delete an item from a production through a routine that installs and disables items.

To add any item, I have no problems, even to enable and disable some particular items.

The problem arises when I try to eliminate the production item, because when it does, the production become unstable and only works again when this item is added again in the collection (or the item is deleted manually in the production.cls)

This is my code attempt:

set productionName = "MyApp.production"

set itemDelete="MyApp.BP.item"

if ##class(Ens.Config.Item).
11
0 911
Question Kurro Lopez · May 16, 2019

Hi all,

I have a class that I want to serialize to JSon. So I'm using the object %ZEN.Auxiliary.jsonProvider)

set myClass = ##class(myapp.myclass).%New()

set myClass.property1 ="value 1"

set myClass.property2 = "value 2"

set myClass.property3 = "value 3"

do ##class(%ZEN.Auxiliary.jsonProvider).%WriteJSONStreamFromObject(.tStream,myClass ,,,1,"ed")

write tStream.Read()

By definition of myclass, all properties are serialized, that's fine. But I want not serialize the property3. I think is using a XML attribute in the property, or something about. But I didn't find anything about.

8
0 857
Question Kurro Lopez · May 10, 2019

Hi community.

I need to get the parent classname of a class, but I don't find how to do it.

I have a class Parent  (MyLibrary.ParentClass) and two classes inherited from the parent class

MyLibrary.ParentClass

       ├─── MyLibrary.ChilcClass01
       │
       ├─── MyLibrary.ChildClass02

I have a Business Process that entry class is MyLibrary.ParentClass. If I'm calling with any child class (i.e. MyLibrary.ChildClass01) it works, then I'm using the method $Classname(request) to get the name of the class and redirecto to other process.

3
0 766
Question Kurro Lopez · Feb 20, 2019

Hi all,

I'm wondering if is possible to extend the UrlMap.

I want to create a base class and one method will be in all extended classes, so I've tried to create the map route in parent class, and the specific methods in extended class. But it doesn't work.

I've create the method in parent class and I've wrote the map in extended class. It works, but I want to put it in base class to prevent forget this call.

Note: The base class extend to %CSP.RES

Best regards,

Francisco Lopez

5
1 865
Question Kurro Lopez · Oct 30, 2018

Hi all,

I have a FTP.Inbounding service that read a file and move it to a other folder when it is processed. The problem is that is not working fine in SFTP server.

The code is coppied from How to - Customize Ensemble Settings article.

// begin customization code// get the Filename, attach the time stamp to it and move the file into the Archive directory// the Rename method below is using RNFR and RNTO FTP commands (RFC 959), effectively moving the file into the new directorySet tSource=pInput.Attributes("Filename")Set tArchive=..Adapter.CreateTimestamp(tSource,"%f_%Q")set fullPath =
4
0 1986