Expand my Community achievements bar.

Control typology rule does not have access to the application object

Avatar

Level 2

Hi,

 

I'm trying to use a control typology rule to dynamically set some SMTP headers of the delivery. One of the things I need to do is check the name of an enumeration based on the value configured in the delivery. 

In a test workflow, I was able to get the name using the application get schema method and find the desired enumeration: application.getSchema("nms:recipient")

 

However, when I try to apply the same code in my typology rule it just doesnt find the schema, I suspect that the application object is not available. According to the documentation it should be:

jmeilan_0-1686840909212.png

 

The complete code is:

 

function findBounceAddress(vendor){

    var schema = application.getSchema("nms:recipient");

    var enum = schema.enumerations.filter(findEnum("nms:recipient:vendor"));
    
    return findNameFromValue(enum[0].values, vendor);
}


function findEnum(name){
    return function(enumerations){
      return enumerations.name.trim() == name;
    }
}

function findNameFromValue(values, searchValue){
    
    var result = "";
    
    Object.keys(values).forEach(function(key,index) {
      if(values[key].value == searchValue){
        result = key;
      } 
    });
    
    return result;
}
Topics

Topics help categorize Community content and increase your ability to discover relevant content.

6 Replies

Avatar

Level 6

Hi @jmeilan ,

I did some research on your query and seems you are not correctly configuring the control typology.

Above code will return value and can you please specify, how you are using the same value to set a rule in control typology.

 

As per your query above, its not much about having application object for control typology or not, its about that you are not returning the correct value which your custom control typology rule wants in same.

 

Can you give some more details of your control typology rule?

 

I am very much sure, rule is not been configured correctly.

 

Note :- JS code in control rule don't work exactly like JS code in workflow activity.

 

Regards

Abhishek

 

 

Avatar

Level 2

Hi Abhishek,

 

I have an enumeration thas values as integers. The whole point of the above code is to give it a value such as 1 and find the name of that enumeration value such as "firstValue".

 

The reason why I think application is not available it's because when I do the below code I don't even get the schema. So nevermind all the loops and searching, I just don't get the recipient schema object in the first place.

 var schema = application.getSchema("nms:recipient");

 

Maybe the object is different in a typology rule but that code worked fine in a workflow

Avatar

Level 6

Hi @jmeilan ,

Yes I also tried the same code at my end and I am also not getting the recipient schema.

 

It seems it is not available. 

 

Regards

Abhishek

Avatar

Administrator

Hi @jmeilan,

Were you able to resolve this query on your own or do you still need help here? Do let us know.

Thanks!



Sukrity Wadhwa

Avatar

Level 2

Hi @Sukrity_Wadhwa ,

 

Unfortunately I wasn't able to make it work and I had to use a workaround. It would be good if I could get some clarity on this for my information but it seems from my side that it is not possible

Avatar

Administrator

Alright! Thanks for updating us on your issue. I will escalate it among our internal SMEs and see if they can help.



Sukrity Wadhwa