Forum - Leverage Data Management Web Services API to Export an IE
- This topic has 6 replies, 4 voices, and was last updated 4 years, 2 months ago by Anonymous.
- AuthorPosts
- December 8, 2017 at 5:51 pm #34447AnonymousInactive
Hello,
I am trying to bypass the UI and export an IE through the Data Management Web Services API call using the exportIE method. Below is the code I have so far and I am able to pass in the pdsHandle, pid, and path. What is highlighted in bold is where I’m stuck. I need to leverage this wsdl to connect to my drps-ua environment somehow, but am not quite sure. There is an example of a getSipStatusInfo in the SDK which uses the wsdl to pull back a status that I am trying to take from, again that is only an example. I have pasted it at the very bottom of this thread.
My main goal is to have you help me make a web service call to our UA environment using this wsdl: http://l7654:1801/dpsws/repository/DataManagerServicesWS?wsdl
In the code you will see right after I receive my pdsHandle is where I am needing to make the call to exportIE. We cannot seem to find the class in the sdk that corresponds with this method.
package com.exlibris.rosetta;
import com.exlibris.core.sdk.exceptions.UserAuthorizeException;
import com.exlibris.repository.procauto.ExportEntityInfo;
import java.lang.String;
import com.exlibris.dps.sdk.pds.PdsClient;
import com.exlibris.repository.procauto.TaskInfo;
import org.lds.dps.ingest.repo.rosetta.sip.SipServicePort;
import org.springframework.beans.factory.annotation.Autowired;import javax.inject.Provider;
import java.net.MalformedURLException;
import java.net.URL;public class MyIEExport {
@Autowired
protected Provider<DataManagerServicePort> dmWS;private String path = null;
private String pid = null;
private String pdsHandle = null;
private long processExectionID;public static void main(String args[]) throws UserAuthorizeException {
final String WSDL_URL = “http://l7654:1801/dpsws/deposit/DepositWebServices?wsdl”;
final String PDS_URL = “http://l7654:8991/pds”;String pdsHandle = null;
String pid = “IE1113032”;
final String path = “/Users/smurphy79”;String userName = “admin1”;
String password = “a12345678A”;
final String institution = “INS00”;try {
PdsClient pds = PdsClient.getInstance();
pds.init(PDS_URL, false);
pdsHandle = pds.login(institution, userName, password);
} catch (Exception e) {
}
ExportEntityInfo eei = dmWS.get().exportIE(pdsHandle,pid,path);
iex.path;}
}
***************** EXAMPLE BELOW OF getting a SIP STATUS back, this is similar to what I am trying to do ***********************
package com.exlibris.dps.sdk.examples;
import java.net.URL;
import javax.xml.namespace.QName;
import com.exlibris.dps.SipStatusInfo;
import com.exlibris.dps.SipWebServices_Service;public class SipStatusTest {
public static void main(String[] args) throws Exception {
URL swsdlUrl = new URL(“http://localhost:1801/dpsws/repository/SipWebServices?wsdl”);
SipStatusInfo sipStatus = new SipWebServices_Service(swsdlUrl,new QName(“http://dps.exlibris.com/”, “SipWebServices”)).getSipWebServicesPort().getSIPStatusInfo(“3”);
System.out.println(sipStatus.getStatus());
System.out.println(sipStatus.getModule());
System.out.println(sipStatus.getStage());}
}December 14, 2017 at 9:31 pm #36371AnonymousInactiveI haven’t actually tried it yet, but wsimport should yield you these classes:
DataManagerServicesWS.class
DataManagerServicesWS.java
DataManagerServicesWS_Service.class
DataManagerServicesWS_Service.javaand it looks like it will work in a very similar fashion to your SipWebServices_Service example… (Or am I missing something and merely restating the obvious)?
–Bill
December 15, 2017 at 5:13 pm #36372AnonymousInactiveTested and found to work! Note the slight difference with no pds…
import java.net.URL;
import javax.xml.namespace.QName;import com.exlibris.dps.sdk.pds.HeaderHandlerResolver;
import com.exlibris.dps.DataManagerServicesWS_Service;
import com.exlibris.dps.DataManagerServicesWS;
import com.exlibris.dps.ExportEntityInfo;public class RosettaExport {
static final String usr = “xxx”;
static final String pwd = “xxx”;
static final String inst = “xxx”;static final String app = “http://rosetta_host:1801”;
static final String dpsws = app + “/dpsws”;
static final String DATAMANAGERSERVICES_WSDL_URL = dpsws
+ “/repository/DataManagerServicesWS?wsdl”;static final String path = “/operational_shared/staff_work_area/bill/export/ies/”;
static final String ie = “IE583120”;/**
* main
*/
public static void main ( String[] argv ) {org.apache.log4j.helpers.LogLog.setQuietMode ( false );
try {
DataManagerServicesWS_Service dataMgrWS_Service =
new DataManagerServicesWS_Service (
new URL(DATAMANAGERSERVICES_WSDL_URL),
new QName(“http://dps.exlibris.com/”, “DataManagerServicesWS”)
);
dataMgrWS_Service.setHandlerResolver (
new HeaderHandlerResolver(usr,pwd,inst) );
DataManagerServicesWS dataMgrWS =
dataMgrWS_Service.getDataManagerServicesWSPort();
ExportEntityInfo eeInfo = dataMgrWS.exportIE ( null, ie, path );
}
catch ( java.lang.Exception excp ) {
excp.printStackTrace();
return;
}
}
}December 15, 2017 at 5:23 pm #36373AnonymousInactiveSorry, my formatting got borked — I don’t actually write code like that!
December 19, 2017 at 11:19 pm #36375AnonymousInactiveBill,
Thanks a bunch for your reply. I’ll try things out as soon as I get a chance.
Sure do appreciate the feedback!
SteveJanuary 15, 2019 at 1:26 pm #36867AnonymousInactiveHello all,
sorry to revive this thread, but since I’m sitting on the same problem I thought is better than to create a new thread.
I tried to implement the solution bill posted but could not get it to work with the current dps-sdk-5.3.0.The issue is that the class com.exlibris.dps.DataManagerServicesWS doesn’t have a method exportIE(…). There is another interface com.exlibris.digitool.repository.ifc.DataManagerServicesWS which does. However I haven’t managed to find an implementation for that.
Am I missing something or is this feature no longer supported in the dps-sdk?Is there another way to export the IE out of Rosetta programatically?
January 15, 2019 at 2:09 pm #36868AnonymousInactiveThe best way I can think of is to create an export process (via the backoffice), and invoke it using runProcessOnPids.
Opher
- AuthorPosts
- You must be logged in to reply to this topic.