Reg: Java API for MDM work flow
Hi,
I am using MDM java API (Version: 5.5 SP 06 Patch 2) for webdynpro. I am creating a record in MDM using MDM java API. Once the record gets created in MDM i need to call the MDM workflow. Is there any java API available to call the MDM workflow into webdynpro. If that is not possible, what is the alternative to call the MDM workflow into webdynpro.
Kindly suggest.
Thanks,
Prasanthi.
Hi Prasanthi,
You need to use the three main classes to work with MDM Workflows
1. RetrieveWorkflowTasksCommand
2. WorkflowTask
Both of the above classes are used to retrieve the current workflow tasks.
3. WorkflowTaskAction
4. WorkflowActionMenuNode
Above classes tells the possible actions of the workflow task.
You will find more information about the above classes in the Java docs
I would still suggest to use UWL if you dont need any customization.
Regards,
Jitesh Talreja
Similar Messages
-
Hi SDN,
I need some information related to ABAP API for MDM workflow. I did search in SDN and I found one solution in a thered posted on Jul-2008.
ABAP API - MDM Workflow execute
My dought is: Do we have any ABAP API for call MDM work flow. Please provide me the solution ASAP. Apprciate for your immediate response.
Regards,
Kumar.Hi LAKSHMAN ,
To answer your question specifically
Using ABAP api you cannot call MDM workflows as of mdm 5.5 there are no functions specific to calling MDM workflows in ABAP.If you want to implement workflows on ABAP side you need to go for SAP ECC workflows which is a different topic than MDM>
To call MDM workflows over the Java stack ie WAS (SAP portal),You have 2 ways
- UWL
- Guided Procedures.
- UWL is a way of calling MDM workflows on EP.Wherein the workflow design will be done in MDM and it will only be called in portal using appropiate connections and configurations.
You can refer the below links to know more on them:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/771f1a61-0e01-0010-daa9-93a52905da09 (uwl)
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a3461636-0301-0010-3787-978f5ac8bd45 (UWL config)
- GP is a way where by you need to design the entire workflow on SAP portal the logic can be pertaining to MDM but the design is completely on portal using webdynpros and api.
You can refer the below links to know more on them:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/92811997-0d01-0010-9584-f7d535177831 (Guided procedures)
Enterprise Master Data Management (EP Guided)
To know more on ABAP api and its provider classes you can refer the below:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/601ddb01-e5c8-2910-d981-b190b51fca44 (abap api webinar)
Re: Abap api error (Abap api provider classes Forum)
Hope It Helped
Thanks & Regards
Simona Pinto -
Any idea folks where I can get the API specs from MDM Cat-2.
Thanks.
Anshuman.Hello Anshuman,
I have found some guides on MDM Catalog 2.0 but to download you need to have Marketplace account here is d link
<a href="http://https://websmp203.sap-ag.de/~form/sapnet?_SHORTKEY=01100035870000679533&">MDM Catalog guides</a>
Regards
Tejas.................. -
Java API for images retriveal, Create and update in New Java API for SP05 ?
Hello Everyone,
Does any one know Which Java API Can be used to Display an Image in main table & API to add an image to Image table and link to Main Table in new release of Java API for MDM SP05.
Really Appreciate all help.
Thanks
VinitaHello Everyone,
Does any one know Which Java API Can be used to Display an Image in main table & API to add an image to Image table and link to Main Table in new release of Java API for MDM SP05.
Really Appreciate all help.
Thanks
Vinita -
Hi all ,
How we can work with JAVA APIs and MDM .
Please tell step by step ways.
thanks in advance.
Thnks
nmHi Man,
You have to specify the correct JAR files in the classpath of the Java Virtual Machine (JVM). The API consists of five JAR files:
1. mdm-admin.jar
2. mdm-common.jar
3. mdm-core.jar
4. mdm-data.jar
5. mdm-protocol.jar
These files in one single archive file with the name MDMJavaAPI_Ver<buildnumber>.zip. you can download this file from the service market place by using mentioned below link:
http://service.sap.com/swdc
then goto Download>Support Packages and Patches> Entry by application group -->SAP NetWeaver -->SAP MDM -->SAPMDM5.5 -->Java API
for the Java API documentation, you can download it from the link below:
http://help.sap.com/javadocs/MDM/current
But remember one thing that this JAVA API Version file must be compitable with your MDM Server version.you can verify this as per the build version.
Hope this will help you.
TNR,
Saurabh...
Edited by: Saurabh Kumar Sahu on Feb 1, 2008 8:09 AM
Edited by: Saurabh Kumar Sahu on Feb 4, 2008 7:49 AM -
Java API for running entire ".sql" files on a remote DB ( mySQL or Oracle)?
Hi,
Would anyone happen to know if there's a java API for executing entire ".sql" files (containing several different SQL commands), on a remote database server ?
It's enough if the API works with MySQL and/or Oracle.
Just to demonstrate what i'm looking for:
Suppose you've created sql file "c:/test.sql" with several script lines:
-- test.sql:
insert into TABLE1 values(3,3);
insert into TABLE1 values(5,5);
create table TABLE2 (name VARCHER) ENGINE innoDB; -- MYSQL specific
Then the java API should look something like:
// Dummy java code:
String driver="com.mysql.jdbc.Driver";
String url= "jdbc:mysql://localhost:3306/myDb";
SomeAPI.executeScriptFile( "c:/test.sql", driver, url);
Thanks.No such a API, but it's easy to parse all sqls in a file, then run those command:
For instance:
import java.sql.*;
import java.util.Properties;
/* A demo show how to load some sql statements. */
public class testSQL {
private final static Object[] getSQLStatements(java.util.Vector v) {
Object[] statements = new Object[v.size()];
Object temp;
for (int i = 0; i < v.size(); i++) {
temp = v.elementAt(i);
if (temp instanceof java.util.Vector)
statements[i] = getSQLStatements( (java.util.Vector) temp);
else
statements[i] = temp;
return statements;
public final static Object[] getSQLStatements(String sqlFile) throws java.
io.IOException {
java.util.Vector v = new java.util.Vector(1000);
try {
java.io.BufferedReader br = new java.io.BufferedReader(new java.io.
FileReader(sqlFile));
java.util.Vector batchs = new java.util.Vector(10);
String temp;
while ( (temp = br.readLine()) != null) {
temp = temp.trim();
if (temp.length() == 0)
continue;
switch (temp.charAt(0)) {
case '*':
case '"':
case '\'':
// System.out.println(temp);
break; //Ignore any line which begin with the above character
case '#': //Used to begin a new sql statement
if (batchs.size() > 0) {
v.addElement(getSQLStatements(batchs));
batchs.removeAllElements();
break;
case 'S':
case 's':
case '?':
if (batchs.size() > 0) {
v.addElement(getSQLStatements(batchs));
batchs.removeAllElements();
v.addElement(temp);
break;
case '!': //Use it to get a large number of simple update statements
if (batchs.size() > 0) {
v.addElement(getSQLStatements(batchs));
batchs.removeAllElements();
String part1 = temp.substring(1);
String part2 = br.readLine();
for (int i = -2890; i < 1388; i += 39)
batchs.addElement(part1 + i + part2);
for (int i = 1890; i < 2388; i += 53) {
batchs.addElement(part1 + i + part2);
batchs.addElement(part1 + i + part2);
for (int i = 4320; i > 4268; i--) {
batchs.addElement(part1 + i + part2);
batchs.addElement(part1 + i + part2);
for (int i = 9389; i > 7388; i -= 83)
batchs.addElement(part1 + i + part2);
v.addElement(getSQLStatements(batchs));
batchs.removeAllElements();
break;
default:
batchs.addElement(temp);
break;
if (batchs.size() > 0) {
v.addElement(getSQLStatements(batchs));
batchs.removeAllElements();
br.close();
br = null;
catch (java.io.FileNotFoundException fnfe) {
v.addElement(sqlFile); //sqlFile is a sql command, not a file Name
Object[] statements = new Object[v.size()];
for (int i = 0; i < v.size(); i++)
statements[i] = v.elementAt(i);
return statements;
public static void main(String argv[]) {
try {
String url;
Object[] statements;
switch (argv.length) {
case 0: //Use it for the simplest test
case 1:
url = "jdbc:dbf:/.";
if (argv.length == 0) {
statements = new String[1];
statements[0] = "select * from test";
else
statements = argv;
break;
case 2:
url = argv[0];
statements = getSQLStatements(argv[1]);
break;
default:
throw new Exception(
"Syntax Error: java testSQL url sqlfile");
Class.forName("com.hxtt.sql.dbf.DBFDriver").newInstance();
//Please see Connecting to the Database section of Chapter 2. Installation in Development Document
Properties properties = new Properties();
Connection con = DriverManager.getConnection(url, properties);
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
//Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
// stmt.setMaxRows(0);
stmt.setFetchSize(10);
final boolean serializeFlag = false;//A test switch to serialize/deserialize the resultSet
ResultSet rs;
for (int i = 0; i < statements.length; i++) {
if (statements[i] instanceof java.lang.String) {
String temp = (java.lang.String) statements;
switch (temp.charAt(0)) {
case 'S':
case 's':
case '?':
System.out.println(temp);
rs = stmt.executeQuery(temp);
if (serializeFlag) {
// serialize the resultSet
try {
java.io.FileOutputStream fileOutputStream = new
java.io.FileOutputStream("testrs.tmp");
java.io.ObjectOutputStream
objectOutputStream = new java.io.
ObjectOutputStream(fileOutputStream);
objectOutputStream.writeObject(rs);
objectOutputStream.flush();
objectOutputStream.close();
fileOutputStream.close();
catch (Exception e) {
System.out.println(e);
e.printStackTrace();
System.exit(1);
rs.close(); //Let the CONCUR_UPDATABLE resultSet release its open files at once.
rs = null;
// deserialize the resultSet
try {
java.io.FileInputStream fileInputStream = new
java.io.FileInputStream("testrs.tmp");
java.io.ObjectInputStream objectInputStream = new
java.io.ObjectInputStream(
fileInputStream);
rs = (ResultSet) objectInputStream.
readObject();
objectInputStream.close();
fileInputStream.close();
catch (Exception e) {
System.out.println(e);
e.printStackTrace();
System.exit(1);
ResultSetMetaData resultSetMetaData = rs.
getMetaData();
int iNumCols = resultSetMetaData.getColumnCount();
for (int j = 1; j <= iNumCols; j++) {
// System.out.println(resultSetMetaData.getColumnName(j));
/* System.out.println(resultSetMetaData.getColumnType(j));
System.out.println(resultSetMetaData.getColumnDisplaySize(j));
System.out.println(resultSetMetaData.getPrecision(j));
System.out.println(resultSetMetaData.getScale(j));
System.out.println(resultSetMetaData.
getColumnLabel(j)
+ " " +
resultSetMetaData.getColumnTypeName(j));
Object colval;
rs.beforeFirst();
long ncount = 0;
while (rs.next()) {
// System.out.print(rs.rowDeleted()+" ");
ncount++;
for (int j = 1; j <= iNumCols; j++) {
colval = rs.getObject(j);
System.out.print(colval + " ");
System.out.println();
rs.close(); //Let the resultSet release its open tables at once.
rs = null;
System.out.println(
"The total row number of resultset: " + ncount);
System.out.println();
break;
default:
int updateCount = stmt.executeUpdate(temp);
System.out.println(temp + " : " + updateCount);
System.out.println();
else if (statements[i] instanceof java.lang.Object[]) {
int[] updateCounts;
Object[] temp = (java.lang.Object[]) statements[i];
try {
for (int j = 0; j < temp.length; j++){
System.out.println( temp[j]);
stmt.addBatch( (java.lang.String) temp[j]);
updateCounts = stmt.executeBatch();
for (int j = 0; j < temp.length; j++)
System.out.println((j+1)+":"+temp[j]);
for (int j = 0; j < updateCounts.length; j++)
System.out.println((j+1)+":" +updateCounts[j]);
catch (java.sql.BatchUpdateException e) {
updateCounts = e.getUpdateCounts();
for (int j = 0; j < updateCounts.length; j++)
System.out.println((j+1)+":"+updateCounts[j]);
java.sql.SQLException sqle = e;
do {
System.out.println(sqle.getMessage());
System.out.println("Error Code:" +
sqle.getErrorCode());
System.out.println("SQL State:" + sqle.getSQLState());
sqle.printStackTrace();
while ( (sqle = sqle.getNextException()) != null);
catch (java.sql.SQLException sqle) {
do {
System.out.println(sqle.getMessage());
System.out.println("Error Code:" +
sqle.getErrorCode());
System.out.println("SQL State:" + sqle.getSQLState());
sqle.printStackTrace();
while ( (sqle = sqle.getNextException()) != null);
stmt.clearBatch();
System.out.println();
stmt.close();
con.close();
catch (SQLException sqle) {
do {
System.out.println(sqle.getMessage());
System.out.println("Error Code:" + sqle.getErrorCode());
System.out.println("SQL State:" + sqle.getSQLState());
sqle.printStackTrace();
while ( (sqle = sqle.getNextException()) != null);
catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace(); -
Image not displayed in pdf generated using Java API for Forms service
Hi,
I am creating a pdf document using Java API for Forms Service.
I am able to generate the pdf but the images are not visible in the generated pdf.
The image relative path is coming in the xml as defined below. The images are stored dynamically in the Livecycle repository each time a request is fired with unique name before the xml is generated.
<imageURI xfa:contentType="image/png" href="../Images/logo.png"></imageURI>
Not sure if I need to specify specify specific URI values that are required to render a form with image.
The same thing is working when I generate pdf document using Java API for Output Service.
As, I need to generate interactive form, I have to use Forms service to generate pdfs.
Any help will be highly appreciated.
Thanks.Below is the code snippet:
//Create a FormsServiceClient object
FormsServiceClient formsClient = new FormsServiceClient(myFactory);
//Specify URI values that are required to render a form
URLSpec uriValues = new URLSpec();
// Template location contains the whole rpository path for the form
uriValues.setContentRootURI(templateLocation);
// The base URL where form resources such as images and scripts are located. Whole Image path is passed in BaseUrl in the http format.
String baseLocation = repositoryPath.concat(serviceName).concat(imagesPath);
uriValues.setBaseURL(baseLocation);
// Set run-time options using a PDFFormRenderSpec instance
PDFFormRenderSpec pdfFormRenderSpec = new PDFFormRenderSpec();
pdfFormRenderSpec.setCacheEnabled(new Boolean(true));
pdfFormRenderSpec.setAcrobatVersion(com.adobe.livecycle.formsservice.client.AcrobatVersio n.Acrobat_8);
//Invoke the renderPDFForm method and write the
//results to a client web browser
String tempTemplateName =templateName;
FormsResult formOut = formsClient.renderPDFForm(tempTemplateName,
inXMDataTransformed,pdfFormRenderSpec,uriValues,null);
//Create a Document object that stores form data
Document outputDocument = formOut.getOutputContent();
InputStream inputStream = outputDocument.getInputStream(); -
Hi MDM frnds,
What is MDM work flow, its Just like ABAP Work Flow??
At what stage we need to define MDM work Flow??
If anybody having usefull documentation shere to me..
Regards,RajHi,
What is MDM work flow?
Workflow is used to run the processes working on master data in a systematic and orderly way.
Generally, we need to have some validations and approvals in order to make sure that master data is
correct.These validations ,approvals and other processes are not done by the single person.Different
operations will be done by different users in master data management.In order to control the overall
processes done by different users in an systematic way, we need workflow.
At what stage we need to define MDM work Flow??
As i said above whenever we have validations, assignments and matching and merging and various
approvals which should be act on our master data before send the master data various application
Systems, then we go for workflow.
For example as soon as we import the data, workflow can be triggered by setting configuration options
in import manager and imported records can be addeed to workflow automatically by setting Trigger action
to record import.By doing this,we can cleanse and normalize the data using various operations in workflow.
and also we can execute the MDM workflows in portal using guided procedures.
Not only that using workflow we can extract the data from MDM to remote system using syndicate step(Available from SP5) of the workflow.
Finally what i can say is using workflow all the operations which need to be executed on master data can
be done in a proper way.
For better understanding, go through below documnents.
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/9180cbaf-0801-0010-f882-f2af6dc975d0
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0be83e4-a1e6-2a10-c1be-8395ae948844
Hope it helps'
Reward points,if found useful
Thanks
Narendra
Edited by: mullapudi on May 6, 2008 7:35 AM -
JAVA API for human intervention in SOA 11g
Hi all,
what is the JAVA API that does work for human intervention fault-policies?
Please help me in finding out this.
Regards
PavanKumar.MHi,
Workflow api
http://download.oracle.com/docs/cd/E17904_01/apirefs.1111/e10660/toc.htm
Rules api
http://download.oracle.com/docs/cd/E17904_01/apirefs.1111/e10660/toc.htm
Thanks,
Raja -
Java API for Adobe Flex(AIR and Browser)
Hello Community,
Sometime ago i started the project located at: : http://code.google.com/p/gwt4air/ , wich primary goal was to bring another approach on writing AIR application by providing a Java API for the AIR API. On top of that i added support for PDF and Excel generation using Java.
I m glad to announce that the project will now add support for the Flex Framework
I wrote a post about it on the main page.
The Idea behind it is to give Java Developers a more simple way to write Flex Application by leaveraing a swing like API.
I hope this project will be a good alternative to the MXML+ ActionScript approach and looking for people willing to join the project.
Regards,
AlainGood question, I'd like to know this myself. 4.5 has a huge number of changes since 4.0.
-
EWS JAVA API for availability is giving only 10 suggested times in a particular day
I'm using EWS JAVA API for seeing the availability of contacts who had shared their calender with me. Here in the suggested timings, I can able to see only 10 suggested timings even though there can be more than 10 suggested slots.
I would like to check is there any limit on suggested times ?
API is also giving quality of timing like "Good", "Excellent" on what basis this is decided ?You can specify the maximum number of suggestions per day using the MaximumResultsByDay parameter (http://msdn.microsoft.com/en-us/library/office/aa565641(v=exchg.150).aspx).
The quality is determined based on how many attendees are available and is influenced by the GoodThreshold:
http://msdn.microsoft.com/en-us/library/office/aa563485(v=exchg.150).aspx. -
How to use java api for function activity in embed oracle workflow?
because i can't install standalone oracle workflow successfully.
pls tell me how to use java api for function activity in embed oracle workflow?
are there some patch or pulg-in package?
ths a lot...........The Java Function Activity Agent is not certified for Oracle Workflow embedded in Oracle Applications. Installing standalone workflow should be a lot easier than what you have found, although it looks like you did hit a Pentium 4 issue with the Oracle Universal Installer. I suggest you contact Oracle Support or Oracle Consulting for assistance.
because i can't install standalone oracle workflow successfully.
pls tell me how to use java api for function activity in embed oracle workflow?
are there some patch or pulg-in package?
ths a lot........... -
Java API for Webchannel 7.0
Hello,
for the ISA 4.0 we had the API of the java classes. Is there something like this for CRM 7.0.
Best regards,
NilsHi Nils,
Follow below steps.
Yes you can get it from service market place.
Follow below steps.
1) Log in to service market place.
2) Click on "Download" Tab
3) On Left side click on SAP Software Distribution Center -->Download > Support Packages and Patches> Entry By Application Group.
4) On Right side. Support Packages and Patches>SAP Application Components> SAP CRM> SAP CRM 2007> Entry by Component--> CRM Application Server Java
5) Click on "SAP SHARED JAVA COMPONENTS"
6) From Below screen click on "Download" tab and Download "SAPSHRJAVxx_x-xxxxxxxx.SCA" file.
7) Open "SAPSHRJAVxx_x-xxxxxxxx.SCA" file by "WINRAR" and unzip on your local laptop.
8) After unzip you will get several zip files under folder "BUILDARCHIVES"
9) Find "crmshrjavadoc" file inside folder "BUILDARCHIVES"
10) Unzip "crmshrjavadoc" file and you will get "javadoc.ppa" file
11) Rename "Javadoc.ppa" file to "Javadoc.zip"
12) Unzip "Javadoc.zip" file which we just rename in step 11.
13) you will get folder "Docs". This folder contain actual "javadoc.zip" file
14) Unzip above file and you will get Java API Documents for ISA 5.0 or ISA 6.0 or ISA 7.0 depends on "SAPSHRJAVxx_x-xxxxxxxx.SCA" version and SP level.
I just got ISA Java Doc by following above steps. It looks 14 step but once you download SCA file it will take only 2-3 minutes.
I am sure you will get Standard Java API for ISA just like ISA 4.0
Please let me know if you face any problem.
Also Visit this ECmmerce 6.0 Java API needed
Let me know if you face any error or problem.
Regards.
Ecommerce Developer. -
Event linakge for PO work flow not transporting to Qualty system
This is Sudhakar ,
I have a problem in Event linkage for PO Release strategy work flow.
I have created a work flow for PO release strategy and done the event linkage through SWETYPV transaction code.
I have added a new entry in SWETYPV transaction code and tick the 'Linkage Activated' check box. I have done this in development server. When I saved it prompted for a request and I have saved this Under the request( Customize request).
When I create the purchase Order for the first time the work flow is getting triggered. When I run the second time its not triggering.
If I observe the reason is 'Linkage Activated' check box is getting unchecked when I create the PO. If I check it again it is asking for a request again.But after next run the linkage is again deactivated.
Can you please help why this is happening.
I have created another request in Customize client and transported first the development client, next the customise client request. When I observe in quality system an entry is created in SWETYPV transaction code for my work flow but 'Linkage Activated' check box is not checked.
How to transport 'Linkage Activated' check box to quality.
This is an urgent one. Any body please help me
Thanks
SudhakarHi Imthiaz,
What you said is correct. Its throwing one error in event trace
Feedback after error - The message is.
The mandatory input parameters of the workflow must be set.
I think I am missing some input parameters.
One more queation, I had transported this already to Quality
But the linkage activation flag is not moved. What could be the reason.
Thanks
Sudhakar -
Newbie who want to use Java API for OLAP
Hi all,
I'm trying to learn how to use Java API for Oracle 10.2 OLAP. I went through the Java OLAP API user guide and I'm getting even more confused. Can somebody guide me to some good online materials?
Many thanks!
- AndrewHi there,
Did you see the examples in the Reference doc? :- http://download.oracle.com/docs/cd/B19306_01/olap.102/b14348/toc.htm
Thanks,
Stuart Bunby
OLAP Blog: http://oracleOLAP.blogspot.com
OLAP Wiki: http://wiki.oracle.com/page/Oracle+OLAP+Option
OLAP on OTN: http://www.oracle.com/technology/products/bi/olap/index.html
DW on OTN : http://www.oracle.com/technology/products/bi/db/11g/index.html
Maybe you are looking for
-
Hello there, My iMac G5 ALS 20" 2GHz (bought from new in May 2005) just shut down on me this morning for no apparent reason. I then tried restarting and it now shuts down or doesn't start at all. I had the hard drive replaced a couple of months after
-
Show quicktime player controls in Keynote for iOS?
I am trying to build an interactive iPad presentation in Keynote, which is essentially a wrapper for hundreds of training videos. On the mac, you can pause and scrub through a video housed within a Keynote presentation but I do not see that option on
-
When I use the type tool or the selection tools, my photos blink between the photo and a black screen. Anyone else have this issue?
-
How to return java objects on the button click
hello all, i wonder if any body let me know ,how to return java objects on button click, import java.awt.*; import javax.swing.*; import java.awt.event.*; class base base() JFrame frame = new JFrame("Base class Message Dialog Box");
-
How to exclude a section of a page from being crawled by SES?
For yahoo, its class="robots-nocontent" For Google, its <!--googleoff: all--> & <!--googleoff: on--> How about SES?