Почему мой весёлый код не захватывает код из каждого сегмента DG1?

Я написал этот код в веселье, чтобы захватить код из каждого сегмента DG1, но он захватывает "неопределенный" и вставляет в БД

for each (seg in msg.children()){ 
    if(seg.name().toString()=="DG1"){
      var vSET_ID =msg['DG1']['DG1.1'].toString();
    if(vSET_ID==1){
      var vPriCode = msg['DG1']['DG1.3']['DG1.3.1'].toString(),50);
    if(vSET_ID==2){
      var vSecCode1 = msg['DG1']['DG1.3']['DG1.3.1'].toString(),50);

Спасибо

1 ответ

В вашем коде много синтаксических и логических ошибок. Если вы намереваетесь использовать их в модуле записи базы данных, вам придется сохранить их в переменную Map (здесь имеет смысл использовать channelMap или connectorMap.) Если вы хотите захватить DG1.3.1 из первого и второго вхождения сегмента DG1 вы можете избежать шагов Javascript в вашем преобразователе и попробовать заменить код двумя шагами Mapper, где:

  1. Первый шаг
    • Переменная:= vPriCode
    • Сопоставление:= msg['DG1'][0]['DG1.3']['DG1.3.1']. ToString()
  2. Второй шаг
    • Переменная:= vSecCode
    • Сопоставление:= msg['DG1'][1]['DG1.3']['DG1.3.1']. ToString()

Эти переменные теперь должны быть доступны в разделе перетаскивания в Destination Mappings вашей программы записи в базу данных. Это делает предположение, что SetIDs появляются в порядке.

(Я собирался опубликовать скриншоты, но моя репутация недостаточно высока.)

Другие вопросы по тегам