Problem configuring endpoint

Ok, for the sake of full disclosure, I’m pretty new to AX.

I’m trying to make it through the following walk through:

http://msdn.microsoft.com/en-us/library/cc589855.aspx

I’m at the point where I’m trying to “To configure the endpoint.” In step 4 you select the LedgerJournalService.read. In step 5 you enable it. In step 6 you select Log All, and in step 7 you save the endpoint, accept that for me I get the error:

The class method for the specified action ‘LedgerJournalService.read’ could not be found.

Peering into the code, I find that the point of failure is the following:

dictMethod = new DictMethod(UtilElementType::ClassInstanceMethod, action.ClassId, action.MethodName);

if (!dictMethod.compiledOk())
throw error(strfmt("@SYS117359", actionId));

This code exists in the \Data Dictionary\Tables\AifParameterLookup->getActionMethod.

Debugging, I can see that action.ClassID is 50014, action.MethodName is “read”. For some reason that I can’t determine, dictMethod.compiledOk() returns false. I am, however, able to compile the service class “LedgerJournalService” without error, and in fact, the entire project without error or warning.

As a follow up, I found the source of the issue.

The table AifAction had the incorrect ClassID (50014). The actual ClassID of the service class was 50020. This apparently occurred because I’ve walked through the walkthrough more than once. I.e. I created the LedgerJournalService class, deleted it, and create it again. Apparently the AifAction table doesn’t get properly maintained.

To fix the error, I had to directly manipulate the table data in AifAction, setting the ClassID to 50020 for the two records that were incorrect, and then “Refresh” the services on the AIF Services form.