Localization Framework: Retrieve translation from custom TMS

YevhenK
Giga Contributor

Hello, big apologies for dummy question, but it makes me crazy. I'm trying to create a spoke for external TMS and use it in Localization Framework. Have implemented Request and Retrieve translation subflows, created TMS configuration and applied it in settings. Request translation works perfectly, I get a zip file with xliffs inside as expected. But Retrieve translations subflow is not invoked (don't see any logs that are printed in the start of subflow, and don't have a rest call configured in it). Also I'm very confused that I can't find any info about conditions/triggers/buttons for invocation of retrieve subflow. So the questions are:
- Is there any button like request translation, but for retrieval? Don't see anything like that, but maybe it could be configured somewhere, or maybe some conditions should happen to make this button appear?
- When/how Retrieve thanslations subflow supposed to be invoked by the default platform rules? The only thing related to this have seen in 'enable auto-retrieve' setting, it sais that retrieve will be done daily by some schedule, but also no info on how to view/edit this schedule.
- Are there any specific requitements to launch retrieve translation? Maybe smth specific should be present in output variables of Request translation subflow?

Will be very happy if someone could point me to some documentation/guide/learning course for this topic. Have studied this https://docs.servicenow.com/bundle/washingtondc-platform-administration/page/administer/localization... and few introductions, but haven't find there needed details.

Big thanks for your attention and thank you very much in advance,
Yevhen

14 REPLIES 14

Alex Coope - SN
ServiceNow Employee
ServiceNow Employee

@YevhenK,

Just so I fully understand your challenge I have 2 questions:

  • What TMS are your trying to connect to, because we have spokes for the two most common already (RWS Trados & XTM) - is a different one to these?
  • Have you reviewed this docs page? You shouldn't be receiving a ZIP file, instead it should be retrieved as JSON so it can be mapped correctly,

 

Many thanks,
kind regards

--------------------------------------------------------------------
Director of Globalization Deployment, Internationalization

Hi Alex,

 

Thanks a lot for your response.

- This is not an RWS or XTM, that's because I'm creating new spoke.

- Yes, have seen this doc, it's containing too generic info. will try to explain step-by-step what I have tried to do.

 

So first i have created subflows for request and retrieve translations as described here https://docs.servicenow.com/bundle/washingtondc-platform-administration/page/administer/localization... , but it didn't work for me. for example, in request translation here are described 4 inputs (lftask_number, xliff_1_2_content, source_language, target_language), but only lftask_number was actually populated.

 

Then i have checked implementation of RWS spoke and have discovered, that there are other inputs: lftask_number and tms_additional_info, and actual content is retrieved inside in script step using

LFTMSHelper.getAttachmentSysId method. Then in REST step providing this id as parameter of multipart request i get a zip file having my items inside. That's entirely ok for me, and i have no questions regarding request translation subflow.
 
But the thing is I have done the same for retrieve translation subflow (checked inputs and outputs of retrieve translations subflow in RWS, created subflow with same inputs and outputs, and trying to just log actual input's values), but it looks like this subflow is not invoked at all.
 
So mainly, i just want to understand, when and how retrieve translation subflow is invoked by Localization Framework during the regular process of items translation, and whether it's possible to call in manually (not via 'test subflow' in Flow Designer, but in live).
 
Best regards, Yevhen

hi @YevhenK,

So, the requirements of each TMS can vary greatly (such as with RWS and XTM and their various parameters and payload requirements).

Are you able to share which TMS you are trying to connect to, and have you reviewed their documentation to see if what we have already got on our side is suitable or whether or not you need to make something new?

 

As a side note, the logic of the "TMS Additional Info" is for when you need to provide more parameters. For example, with XTM it's not uncommon to need to force the parameter of a particular "workflow" on their side (yes they use the same terminology as us) or the parameter of an "account" or "project" because most TMS's are used by Agencies and so there is a very specific topology to follow but it's also important to note that it's not always the case.
In the scenario of connecting to an Agency's TMS, you might need to factor in the "Customer", the "Project" and the "Model". But like I said, each TMS and their respective structure is different and not knowing which one you are trying to connect to would make that quite hard.

 

In my example instance, I am integrating with my XTM demo instance, which has a very specific "workflow" in XTM to route all translation requests in a very specific way. They call it a "template" and so I leverage the "Additional Info" to provide that in my LF setting record (this is the one used for the artefacts and would not be hardcoded in the flow, the flow just calls this to see if there is something to send):

AlexCoopeSN_0-1715842135404.png

 

Based on what you've said so far, my suggestion would be to thoroughly read through their documentation to see if you are sending everything it expects and then review how their end is expecting to send the payload back to you (if that makes sense),

 

Many thanks,

kind regards 

--------------------------------------------------------------------
Director of Globalization Deployment, Internationalization

User41925
Tera Contributor

Hi @Alex Coope - SN 

I'm in a similar situation as @YevhenK, in my case we are using memoQ as a TMS.

If I understand correctly, you have created a number of LF settings records for your different artifacts and mapped them via a TMS Template ID to implement the desired translation workflow on the TMS side for each artifact.

 

If that is the case, what do you do when you have multiple target languages, but not all requests require localization for all target languages?

 

Do you create a number of templates on the TMS side configured for the type of artifact we are requesting translations for, multiplied by the number of target languages?

 

In my scenario, the TMS templates are configured to deliver machine translation as one of the automated steps, so you can imagine how important the target language definition is on the TMS template side.

 

Best regards, Tulio