Обмен данными из Microsoft Business Central в JavaScript
В настоящее время я работаю над сканером, который вводит данные в поля BC. Связь между устройством и программным обеспечением осуществляется с помощью javascript.
Я могу отправить данные из JS в BC с помощью
Microsoft.Dynamics.NAV.InvokeExtensibilityMethod('BarcodeRead',[BCode] );
но я не мог понять, как отправить данные обратно в JS.
(У ридера есть экран, и мне нужно вывести на него складские запасы на основе данных БК).
В настоящее время лучшим предположением будет отправка данных с помощью STREAMS в файл .txt , а код JS будет прочитан из него. Но это было бы медленно и не так надежно, на мой взгляд.
1 ответ
Поскольку вы уже знаете, что InvokeExtensibilityMethod может запускать события на стороне BC, вы знаете, что вам нужна надстройка управления.
На странице Microsoft Docs, посвященной управляющим надстройкам, есть пример, показывающий, как вызывать функции JS из BC:
// The procedure declarations specify what JavaScript methods could be called from AL.
// In main.js code, there should be a global function CallJavaScript(i,s,d,c) {Microsoft.Dynamics.NAV.InvokeExtensibilityMethod('CallBack', [i, s, d, c]);}
procedure CallJavaScript(i: integer; s: text; d: decimal; c: char);
На жаргоне Британской Колумбии процедуры — это своего рода противоположность событиям .