AIF Web Services update method

Dear All,

I have installed and configured AIF web services on IIS for Axapta 2009. I published InventItemService and consumed it in C# application.

The item creation is working fine after passing all the Axd documents.

I updated document service to include update method and overridden the update method of AxdBase class in AxdItem Class. After passing data to update method of service in C# app then unknown exception is thrown as “An unspecified runtime engine error has occurred. Error code: %d.”

Is there any other way to handle update or i am doing something wrong here. Please help me on this.

Thanks,

Sayeed

Anyone can help me on this.

Hi Syed,

For updating the service you need to do the following steps for updating the Document service in Ax2009.

Tools → Developer Tools → Application Integration Framework → Update Document Service.

After selection of this option Update Document service form will appear. In that You need to select the service which you are going to update and select the update option(Check box).

Select both Regenerate data object class and Update AxBC class and click ok. It will update the service.

Regards,

Abbas

I have already done the above procedure but error is thrown when calling update method of inventitemservice from C# app.

Hi Syed,

Please restart the AOS and IIS services once and try again.

if you want to check pls look into this forum…

http://axfaq.blogspot.in/2012/02/ax2009-ep-error-unspecified-runtime.html

Regards,

Abbas.

Sorry to say you, I even tried this one. But same error is thrown.

If you can tell me whether i need to write my custom code in update method of AxItem class in order to update the item or point me to any sample.

We are using AX 2012 but the Customer service has an update operation out of the box, if it exists in 2009 perhaps that would be a good template.

S

Hi Syed,

If this issue cannot be solved, perhaps easiest option would be to move your above logic elsewhere. Can you let us know what the above modification does please?

Hi Harish,

The below two methods were generated by Axapta after using the AIF update document service tool with throw error statements. When i was executing the update method from C# app then error was throwing “The Axd Document does not support this action”. So, i overridden the AxdBase methods as seen below and later calling update method from C# throws “An unspecified runtime engine error has occurred. Error code: %d.” error.

I searched other axd documents for update method functionality but all of them are not implemented. I hope it is clear for you.

AifResult update( AifEntityKey _entityKey , AifDocumentXml _xml, AifEndpointActionPolicyInfo _actionPolicyInfo, AifConstraintList _constraintList)

{

// throw error(strfmt("@SYS94920"));

return this.update(_entityKey,_xml,_actionPolicyInfo,_constraintList);

}

public AifResult updateList( AifEntityKeyList _entityKeyList, AifDocumentXml _xml, AifEndpointActionPolicyInfo _actionPolicyInfo, AifConstraintListCollection _constraintListCollection)

{

//throw error(strfmt("@SYS94920"));

return this.updateList(_entityKeyList,_xml,_actionPolicyInfo,_constraintListCollection);

}

Thanks,

Sayeed

Hi Sayeed,

If I understand correctly, you have modified your document class by overriding update method. And when you are trying to call this from C#, you receive errors.

Have you tried calling it from X++? This should give more info on this issue. If you decide to go down this route, remember to make this change (http://blogs.msdn.com/b/dynamics_ax_horizon/archive/2010/09/01/debug-in-aif-classes.aspx)

Alternatively you may want to debug this issue directly from .NET. If you choose to go down this route, this should help - http://blogs.msdn.com/b/axsupport/archive/2011/01/19/debugging-aif-web-services.aspx

A definite issue, I just had the same thing occur on updating the InventCountJournalService. I will keep you posted on the solution I end up taking.

~S

You’ll want to leave the AxdBase class alone as this will provide the core functionality. I ended up modifying the AxdCountingJournal document class updateList() method to call super ( AxdBase ).

public AifResult updateList( AifEntityKeyList _entityKeyList,

AifDocumentXml _xml,

AifEndpointActionPolicyInfo _actionPolicyInfo,

AifConstraintListCollection _constraintListCollection)

{

AifResult aifResult;

aifResult = super(_entityKeyList, _xml, _actionPolicyInfo, _constraintListCollection);

return aifResult;

//throw error(strFmt("@SYS94920"));

}

Also, I ended up modifying the default schema through the enhanced integration port customize options. Be sure if you modify the schema, to keep the Document Hash as required and enabled.

Regards,
Silvano