Kushayelwa i-AIF Document Services ngqo kusuka ku-X++ ku-Dynamics AX 2012
Kushicilelwe: Februwari 16, 2025 11:26:28 UTC
Igcine ukubuyekezwa: Januwari 12, 2026 08:55:44 UTC
Kulesi sihloko, ngichaza indlela yokubiza izinsizakalo zedokhumenti ye-Application Integration Framework ku-Dynamics AX 2012 ngqo kusuka kukhodi ye-X++, ngilingisa kokubili izingcingo ezingenayo neziphumayo, okungenza kube lula kakhulu ukuthola nokulungisa amaphutha kukhodi ye-AIF.
Calling AIF Document Services Directly from X++ in Dynamics AX 2012
Ulwazi olukulesi sihloko lusekelwe ku-Dynamics AX 2012 R3. Lungase lusebenze noma lungasebenzeli ezinye izinguqulo.
Muva nje bengisiza ikhasimende ukuthi lisebenzise i-Application Integration Framework (AIF) port yokudala amakhasimende ngokusekelwe kudatha abayitholayo kolunye uhlelo. Njengoba i-Dynamics AX isivele inikeza isevisi yedokhumenti ye-CustCustomer, esebenzisa i-logic yalokhu, sinqume ukukugcina kulula futhi sisebenzise ikhambi elijwayelekile.
Kodwa-ke, kwasheshe kwavela ukuthi kwakunezinkinga eziningi zokwenza uhlelo lwangaphandle lukhiqize i-XML olwaluzokwamukelwa yi-Dynamics AX. I-schema ye-XML ekhiqizwe yi-Dynamics AX iyinkimbinkimbi kakhulu futhi kubonakala sengathi kuneziphazamiso ezimbalwa ku-Dynamics AX ezibangela ukuthi ngezinye izikhathi yenqabe i-XML evumelekile ngokwe-schema ngokwamanye amathuluzi, ngakho-ke konke, kwabonakala kungalula kunalokho engangikucabanga.
Ngesikhathi somzamo, ngangivame ukuba nobunzima bokuthola ukuthi inkinga yayiyini ngempela ngamafayela athile e-XML ngoba imiyalezo yamaphutha enikezwa yi-AIF ayinikezi ulwazi oluningi. Kwakuyinto ekhathazayo futhi, ngoba kwadingeka ngilinde uhlelo lwangaphandle ukuthi luthumele umlayezo omusha nge-MSMQ bese kuthi futhi i-AIF ithathe umlayezo bese iwucubungula ngaphambi kokuba ngibone iphutha.
Ngakho-ke ngiphenye ukuthi kungenzeka yini ukushayela ikhodi yesevisi ngqo ngefayela le-XML lendawo ukuze kuhlolwe ngokushesha futhi kwavela ukuthi kunjalo - futhi hhayi lokho kuphela, kulula kakhulu ukukwenza futhi empeleni kunikeza imiyalezo yamaphutha enenjongo kakhulu.
Umsebenzi wesibonelo ongezansi ufunda ifayela le-XML lendawo bese uzama ukulisebenzisa nekilasi le-AxdCustomer (okuyikilasi ledokhumenti elisetshenziswa yisevisi ye-CustCustomer) ukudala ikhasimende. Ungenza imisebenzi efanayo kuzo zonke ezinye izigaba zedokhumenti, isibonelo i-AxdSalesOrder, uma udinga.
{
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');
}
Into ye-AifEntityKey ebuyiswe yindlela ye-customer.create() (ehambisana nokusebenza kwesevisi "yokudala" ku-AIF) iqukethe ulwazi mayelana nokuthi yiliphi ikhasimende elidalwe, phakathi kwezinye izinto i-RecId yerekhodi le-CustTable elidalwe.
Uma lokho ozama ukukuhlola kuyi-Outbound port esikhundleni salokho noma uma udinga nje isibonelo sokuthi i-XML kufanele ibukeke kanjani ku-Inbound port, ungasebenzisa futhi isigaba sedokhumenti ukuthumela ikhasimende kufayela esikhundleni salokho ngokubiza indlela ye-read() (ehambisana nokusebenza kwensizakalo "yokufunda") esikhundleni salokho, njengokuthi:
{
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');
}
Kufanele ufake inombolo ye-akhawunti yekhasimende ofuna ukulifunda esikhundleni sika-'123456'.
Ukufunda Okuqhubekayo
Uma ukujabulele lokhu okuthunyelwe, ungaphinda uthande lezi ziphakamiso:
- Indlela Iterate Over the Elements of an Enum kusukela X ++ Code e Dynamics AX 2012
- Iphutha "Asikho isigaba semethadatha esichazwe entweni yenkontileka yedatha" ku-Dynamics AX 2012
- Ukufometha kwezintambo nge-Macro ne-strFmt ku-Dynamics AX 2012
