cancel
Showing results for 
Search instead for 
Did you mean: 

MI Generic Sync - SyncException (Method <xxx> is not registered!)

Former Member
0 Kudos

Hi,

I am having a problem with Generic Sync, and I wonder if anyone can help.

This is a simple "update a table" sync running from an AWT application on SP19, with JDK1.4.2_12.

Here is the code (it is pretty standard):


OutboundContainer out = outfactory.createOutboundContainer(VisibilityType.SEPARATED, R3_FUNCTION);
out.addItem("RFID_TAG", "000012");
out.close();

I put a canned key/pair in for illustration.

The R3_FUNCTION (in my case "SYNC_RFID") is present in BWAFMAPP, and maps to a Wrapper Function. When tested, the Function Module itself happily accepts a tag and updates the table correctly.

However, when I attempt a sync from the MI client, I keep getting a <b>Method SYNC_RFID is not registered!</b> error (the code is wrapped in a try - catch SyncException block)

Has anyone seen this before? The exception is thrown immediately - there isn't a hint of a network connection attempt. I have synced the application many times from home page (with no errors), but the "not registered" error refuses to disappear.

Have I forgotten a critical step?

Message was edited by:

David Butler

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello David

Every Class that extends the InboundProcessor API provided by MI should be registered. In this case you wouldnt have registered the same. The following piece of code should help you solve your problem

public class MyInboundProcessor implements InboundProcessor {
    void register(){
        InboundProcessorRegistry inboundreg = InboundProcessorRegistry.getInstance();
        if (!inboundreg.isRegistered(SYNC_RFID)) {
            inboundreg.register(new MyInboundProcessor());
        }
    }
}

Please try this and hope this helps.

Best Regards

Sivakumar

Former Member
0 Kudos

Thanks Sivakumar,

In hindsight, I should have guessed that even though I am only doing a client --> server update I would have to register the Method name with the Inbound Processor.

If anyone else gets trapped by this, note that the InboundProcessor implementation must be Serializable, so you might need to do a Client Reset via the Settings menu - the trace log throws up the ClassNotSerializableException if you change the signatures on the InboundProcessor whilst trying to get this to work

Answers (0)