Migrating ODL-based message AIMs


Acquisition AIMs

Earlier versions of e-Biz Impact automatically started the protocol object with the required name of protomain. The name requirement has been removed, so now you must start the protocol object using the clinit() function:

erm( "connector::clinit() begin");  //optional
proto1.start();       //start the protocol object
erm( "connector::clinit() end");  //optional
return 1;

You must also add comm.kill(), where comm is your communication object name, in your cldeinit() call, to prevent a comm event from occurring after disabling an application. The comm object can also activate the closeflow object if a connection attempt fails. This differs from earlier versions in that the closeflow occurred only if an existing connection was broken.

Remove clfile object

Earlier versions of e-Biz Impact passed file objects through DFC. With e-Biz Impact 5.4.5 and higher, the 64K data size limit has been removed and the need to pass the file object through a DFC no longer exists. If any acquisition AIMs contain the DFC call route_recx, you must remove the file object from the argument list:

  1. Launch MSG-IDE.

  2. Open the acquisition project that contains route_recx.

  3. Select Distributed Function from the left pane.

  4. Double-click the route_recx function listed in the right pane.

  5. Scroll down the argument list and click clfile.

  6. Click Delete.

  7. Click OK.

  8. Remove the clFile object from route_recx calls in all functions.


Delivery AIMs

Remove the clFile objects from the servproc() functions, then change *ErrText to be an [out] variable, as shown in Figure 4-1.

Figure 4-1: servproc() definition changes

Migrating AIMs from use of explode and combine

The use of explode and combine for DFC packaging has been eliminated in version 5.5. Therefore, you must convert AIMs to handle the new model.

Conversion requires that you reenter code for the DFC entry points to have the full argument list. The following shows before and after examples of servayt() and servproc().

  1. For servayt(), change:

    char[out] Stat[13]);
    

    to:

    string[out] *Stat)
    
  2. For servproc(), change:

    char [in,out] SerialNo[13]
    

    to:

    string [in.out] *SerialNo;
    

    Change:

    char [in] SRCRef[33]
    

    to:

    string [in] SRCRef;
    

    Change:

    string [in.out] *ErrText
    

    to:

    string [out] *ErrText
    

Sybase recommends that you do not use clQuit() in e-Biz Impact 5.5. In earlier versions, clQuit was typically used to shut down the delivery AIM when the clpipe connection was lost. In version 5.5, use the restart method on the communication object to restore the lost connection by setting a brief timer in the closeflow, and call the restart method when the timer fires.

See the e-Biz Impact ODL Guide for information about using these methods.