cancel
Showing results for 
Search instead for 
Did you mean: 

Anybody has experience calling ID API web service in Java

Former Member
0 Kudos

Hello,

as you know we can programmatically update ID objects by call ID APIs (web service). To do that you need to import the wsdl into a java project, generate web service client and call the client to update ID objects.

I've tried this in NWDS CE version. However I got error when generating web service client from the wsdl of the ID web service. Only the BusinessComponentService passed the ws client genertion, the rest web services do not work.

The error I got:

IWAB0399E Error in generating Java from WSDL: java.lang.NullPointerException

java.lang.NullPointerException

at org.apache.axis.wsdl.toJava.JavaInterfaceWriter.writeOperation(JavaInterfaceWriter.java:126)

Anybody has experience with ID API?

Thanks

Jayson

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

jsut close the post

henrique_pinto
Active Contributor
0 Kudos

HI Jayson,

you can also request the web service directly.

For example, you could create a local xml file with the values you want to pass to the web service and configure a file 2 soap scenario within XI itself.

You can create interfaces for each available web service.

You could call this scenario "ID objects generator" or something and save the .tpz for the repository objects of this scenario, since you could reuse it in other projects.

Other than that, in Teched '08, Bill Li showed a lot of proxies developed over Java to consume the ID API web services, and they all seemed to work ok. However I do think he used NW Developers Studio 7.0 (2004s), not CE.

I'd raise an OSS msg with SAP in order to check the problem you're getting.

Regards,

Henrique.

Former Member
0 Kudos

Henrique,

very good suggestion to do it with ID integration scenario.

There is still one issue, I would like to put all changes into one changelist, with your suggestion, manual intervention would be needed to pass change list ID to all subsequential ID API call. My intention is to have some property files containing the new settings of the ID objects, run a java program loading those property file and update the ID objects.

Anyway, your suggestion is still very valuable.

Thanks

jayson

henrique_pinto
Active Contributor
0 Kudos

Hi Jayson,

you can maintain those parameters in a mapping for your file 2 soap scenario.

This way, you don't need to change it manually several times.

You do it once, and the mapping will always fill the same Change List name, for example.

Best regards,

Henrique.

Former Member
0 Kudos

Henrique,

how can you maintain the change list in mapping?

you mean put the chang list id in global container? I think value you put in global container is only valid within the mapping of the single message, it is NOT across messages. or you mean something else?

Thanks

Jayson

henrique_pinto
Active Contributor
0 Kudos

Sorry, I had understood it should be the same value always.

If it changes dynamically, you can try a lookup in mapping to check the current value.

But parameter file for mapping can also be achieved.

Regards,

Henrique.

Former Member
0 Kudos

I think it's hard to archive with integration scenario. basically following would be needed.

1) Call change list service to get change list id

2) call multip ID API web service (File2soap) using the change list id obtained in step 1

3) Call change list service to activate the change list.

With ID integration, it's hard to archieve all those steps within one scenario, even with BPM. isn't it?

henrique_pinto
Active Contributor
0 Kudos

I didn't know you needed to call separate services to get/activate change list.

I've never implemented it, but from what I remember from Bill's presentation, it was possible to request change list activation directly in the Objects creation web service.

Regards,

Henrique.