SBL-EAI-04300: Business Service '%1' does not have method '%2' defined in the current SRF.

Applies to:

Siebel Call Center - Version: 7.8.2.4 [19224] - Release: V7

Information in this document applies to any platform.



Symptoms

The following behavior was encountered.



- A Business Service (BS) had 2 methods, Method1 and Method2.

- The BS was published as inbound Web Service (WebSvc), with both method exposed as operation

- Later on, the BS was amended and Method 2 removed.

- The new version of the BS was compiled into SRF and deployed on the servers.

- The definition of the WebSvc was also amended to remove the operation corresponding to Method2



The generation of the WSDL raises the error below anyway.

SBL-EAI-04300: Business Service 'Test SR' does not have method 'Method2' defined in the current SRF.

Cause

The inbound WebSvc view is defined as below.



Applet[0]: Inbound Web Services List Applet;

Applet[1]: Inbound Service Ports List Applet;

Applet[2]: Inbound Operations List Applet;



BusComp[0]: Web Service based on table S_WS_WEBSERVICE

BusComp[1]: Port based on table S_WS_PORT



BusComp[2]: Operation based on table S_WS_OPERATION



The link Port/Operation uses intersection table S_WS_PORT_OPER, PORT_ID/OPERATION_ID



Addition of an operation to a port (bottom applet) does the following inserts

INSERT INTO SIEBEL.S_WS_PORT_OPER

INSERT INTO SIEBEL.S_WS_OPERATION



Delete of an operation does the following:

DELETE FROM SIEBEL.S_WS_PORT_OPER





When generating a WSDL, various select statements are done, including one on table S_WS_OPERATION, with id of the Implementation record uses for the Port. Also, as the deleted of published operation did not delete the record from S_WS_OPERATION, the application obviously search for the method listed in the BS's def, hence the error SBL-EAI-04300.



Solution

The above is expected. Considering we can create several ports (within same or different WebSvc) using the same implementation record, when an operation is removed from a port, only the intersection record should be removed (S_WS_PORT_OPER) and not record in S_WS_OPERATION because potentially another port can still use it. This is the purpose of many-to-many relationship.



To overcome the error, the following can be done.



- Delete the Service Port record (eventually save the information from Address and binding)

- Create a new Service Port record

- Open the Pick List on Type

- Query for the Implementation previously created for the BS, search on field [Implementation Name]=

- Delete this record

- Recreate the Implementation record on BS again (as you done initially)

- Continue the creation of the port as done initially (transport, address, binding)



Then re-create the Operation(s).



Enhancement BUG 10545401 was created to have the Web Service's administration views enhanced in the future.

תגובות

פוסטים פופולריים מהבלוג הזה

Access control with EAI Siebel Adapter

Profile Attributes and Open UI

SBL-EAI-04115: Cannot connect to the server