Есть ли способ узнать, является ли текущая запись Netsuite подзаписью другой записи внутри suitescript? - PullRequest
0 голосов
/ 18 мая 2018

Проблема:Я работаю над клиентским сценарием (запись pageInit) для записи сведений инвентаризации (id: inventorydetail), но мне нужно, чтобы этот сценарий запускался ONLY , когда эта запись (инвентаризация) загружается из записи поступления элемента (неВыполнение элемента или любое другое).

Есть ли способ получить тип записи ' super ' во время выполнения сценария или я могу указать эту логику (запуск для деталей инвентаризации только в контексте получения элемента) в интерфейсе Ntesuite?

Примечание: Сценарий должен будет изменить (или, по крайней мере, установить значения по умолчанию) в форме сведений инвентаризации, прежде чем любые изменения пользователя или, в идеале, он должен отлавливать изменения пользователя и выполнять некоторые действия.SuiteScript2.0 желательно.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Альтернативным решением было бы использование сценария пользовательских событий.

Сведения об инвентаризации не считаются записями в NetSuite, и поэтому вы не можете применить к ним сценарий пользовательских событий.Это подзапись, и вы можете рассматривать ее как поле с несколькими атрибутами.

Возможно, вам придется применить свой сценарий в качестве сценария пользовательского события к записи поступления элемента.Ваш скрипт должен будет обновить данные инвентаризации в пользовательском событии «ПЕРЕД НАГРУЗКОЙ НАГРУЗКИ».Это будет означать, что значения по умолчанию будут введены в данные инвентаризации, но не будут сохранены в базе данных до тех пор, пока пользователь не сохранит запись поступления материала.

В SuiteScript 2 получите подзапись данных инвентаризации для каждой строкив ItemReceipt и измените значения по своему желанию:

var inventoryDetailRecord = itemReceipt.getSublistSubrecord({
      sublistId: 'item',
      fieldId: 'inventorydetail',
      line: i
    });

    inventoryDetailRecord.setSublistValue({
      sublistId: 'inventoryassignment',
      fieldId: 'issueinventorynumber',
      value: serialId,
      line: 0
    });

Недостатком этого решения является то, что вы будете заполнять данные в подзаписи, даже если подзапись не просматривается - это может быть не идеальнов зависимости от того, что вы хотите сделать.

0 голосов
/ 21 мая 2018

Я не уверен, что у NetSuite есть API для него.Придется проверить.Но если нет NetSuite API, мы можем добиться этого с помощью JavaScript DOM.Вы можете использовать window.parent.location.path, в котором вы получите ссылку, по которой была открыта подзапись.

...