Como parte de um projeto técnico recente de documentação para otimizar a busca, precisei usar Embedded Python no meu código ObjectScript.
O principal obstáculo foi passar uma lista do Python, criada em um método de classe Python, para um método ObjectScript.
Enviar a lista por referência para o método Python, preenchê-la com o método Insert(), e retornar a referência para o método ObjectScript resultava em uma lista do tipo %SYS.Python. Esse processo era simples, mas pouco eficiente.
Explorei então um método alternativo: converter uma lista Python em uma lista ObjectScript usando JSON como formato intermediário.
Essa abordagem parece exigir menos código e oferecer melhor desempenho em tempo de execução.
No código Python:
list = ["a", "b", "c", "d"]
jsonExport = json.dumps(list)
No código ObjectScript:
jsonExport = ##class(Example.Case).GetPythonList()
set list = ##class(%DynamicAbstractObject).%FromJSON(jsonExport)
.png)
.png)