Kira AIF Document Services kai tsaye daga X ++ a Dynamics AX 2012
Buga: 16 Faburairu, 2025 da 11:23:41 UTC
A cikin wannan labarin, na bayyana yadda za a kira aikace-aikace Integration Framework takardun ayyuka a Dynamics AX 2012 kai tsaye daga X ++ code, yin koyi da duka inbound da outbound calls, wanda zai iya sa ya fi sauƙi a samu da kuma cire kuskure a cikin AIF code.
Calling AIF Document Services Directly from X++ in Dynamics AX 2012
Bayanin da ke cikin wannan post ya dogara ne akan Dynamics AX 2012 R3. Zai iya zama daidai ko kuma ba zai yiwu ba ga wasu juyin.
Ba da daɗewa ba, na taimaka wa wani mai ƙwazo ya yi amfani da tsarin haɗin kai na Shirin Ayuka (AIF) don ya halicci masu amfani bisa bayani da suke samu daga wani na'ura. Tun da yake Dynamics AX ya riga ya ba da aikin takardar CustCustomer, wanda ke yin amfani da dalilin wannan, mun tsai da shawara mu riƙe shi sauƙi kuma mu yi amfani da magance na ƙwarai.
Amma, ba da daɗewa ba ya gano cewa akwai matsaloli da yawa wajen sa na'urar waje ta ƙera XML da Dynamics AX za ta karɓa. XML schema da Dynamics AX ta halitta yana da wuya sosai kuma yana bayyana cewa akwai kuskure kaɗan a Dynamics AX da a wasu lokatai suke sa ya ƙi XML wanda yake da amfani da shi bisa wasu kayayyaki, saboda haka, dukansu, ya zama ƙaramin sauƙi fiye da yadda na yi tunani.
A lokacin ƙoƙarin, sau da yawa na yi ƙoƙari na san abin da matsalar take da wasu fayil na XML domin saƙon kuskure da AIF ya bayar ba shi da sani. Ban da haka ma, yana da ban sha'awa, domin na jira na'urar waje ta aika sabon saƙo bisa MSMQ kuma sai kuma don AIF ya ɗauki saƙon kuma ya yi amfani da shi kafin in ga kuskure.
Saboda haka na bincika ko zai yiwu a kira kodin hidima kai tsaye da fayil na XML na yankin don gwaji mai sauƙi kuma ya bayyana cewa - ba kawai haka ba, yana da sauƙi a yi kuma a gaskiya yana ba da saƙon kuskure mai ma'ana.
Aikin misali da ke ƙasa yana karanta fayil na XML na yankin kuma yana ƙoƙarin ya yi amfani da shi da aji na AxdCustomer (wancan shi ne ajin takardar takardar da CustCustomer yake amfani da shi) don ya halicci mai amfani da shi. Za ka iya yin irin wannan aikin ga dukan sauran ayoyin takardar takardar takardar takardar
{
FileNameOpen fileName = @'C:\\TestCustomerCreate.xml';
AxdCustomer customer;
AifEntityKey key;
#File
;
new FileIoPermission(fileName, #IO_Read).assert();
customer = new AxdCustomer();
key = customer.create( XmlDocument::newFile(fileName).xml(),
new AifEndpointActionPolicyInfo(),
new AifConstraintList());
CodeAccessPermission::revertAssert();
info('Done');
}
AifEntityKey abu dawo da abokin ciniki.create () hanyar (wanda ya dace da "halitta" sabis aiki a AIF) yana dauke da bayanai game da abin da abokin ciniki aka halitta, a tsakanin sauran abubuwa RecId na halitta CustTable rikodin.
Idan abin da kake ƙoƙarin gwada shi ne tashar jirgin ruwa na Outbound maimakon haka ko kuma idan kana bukatar misali na yadda XML ya kamata ya kasance kamar a tashar jirgin ruwa na Inbound, za ka iya yin amfani da aji na takardar takardar don ka fitar da mai amfani da shi zuwa fayil maimakon haka ta kira hanyar karanta () (daidai da aiki na hidima na "karanta") maimakon haka, Kamar haka:
{
FileNameSave fileName = @'C:\\TestCustomerRead.xml';
Map map = new Map( Types::Integer,
Types::Container);
AxdCustomer customer;
AifEntityKey key;
XMLDocument xmlDoc;
XML xml;
AifPropertyBag bag;
#File
;
map.insert(fieldNum(CustTable, AccountNum), ['123456']);
key = new AifEntityKey();
key.parmTableId(tableNum(CustTable));
key.parmKeyDataMap(map);
customer = new AxdCustomer();
xml = customer.read(key,
null,
new AifEndpointActionPolicyInfo(),
new AifConstraintList(),
bag);
new FileIoPermission(fileName, #IO_Write).assert();
xmlDoc = XmlDocument::newXml(xml);
xmlDoc.save(fileName);
CodeAccessPermission::revertAssert();
info('Done');
}
Hakika, ya kamata ka mai da '123456' da yawan takardar da kake son ka karanta.