BPM-API and generic task completion
Hi experts,
I want to write an application that allows you to work on different tasks. The problem is that these tasks could include various input and output data. How can I resolve this DataObjects generic and receive all relevant information such as data type, value and name? How is that when the data are nested? You can also then resolve the structure and if so how?
Regards
Hi,
yes, you can do so. The interface common.sdo.DataObject provides methods to introspect the structure and determine the type of the properties. You might take a look at the RESTful service for the BPM API I published on CodeExchange:
RESTful service for NetWeaver BPM
Looking at the code in the repository you will definitely samples on how this can be achieved.
Hope this help you to start on what you are trying to achieve.
best regards,
Stefan
Similar Messages
-
BPM process and manage task option should avaible at Portal
Hi Expert,
Assigned User will see BPM process and manage task option in directly in portal not required to login as NWA.
Please help me on this.
Thanks,
PadmindraHi Mithileshwar,
Start BPM Process Trigger - Read timed out
Regards,
V Srinivasan -
Mark waiting and cancelled tasks completed
Hi All,
is there sql somewhere that can mark certain tasks that are in waiting and canceled status to Completed?
Thanx.
FredI would suggest using the APIs to update the status or use the manuallyComplete API instead.
-Kevin -
SAPUI5 and oData: Task completion problem
Dear all,
We've got a BPM process which is based on WDJ approval screens.
Now I would like to replace WDJ by SAPUI5.
I've succeeded to display some task input data in my SAPUI5 application:
oPanel.bindElement("/InputData('"+taskId+"')", {expand:"ContextTypeINPUT/Context/Requester"});
var oInputFirstName = new sap.ui.commons.TextField("textFirstName", {
value : "{ContextTypeINPUT/Context/Requester/FirstName}"
var oInputLastName = new sap.ui.commons.TextField("textLastName", {
value : "{ContextTypeINPUT/Context/Requester/LastName}"
But I can't manage to complete the task.
For a simpler example that worked for me.
It seems that I don't fill the output data correctly.
Normally I should fill the Status (fields Action, ChangedBy, ChangedOn and Details) and the Request->ReferenceNumber:
Please find attached the XSD of the task.
I tried the following:
var outputData = {};
var status = odataModel.getProperty("/InputData('" + taskId "') " +
"/ContextTypeINPUT/Context/Status");
status.Action = "approved";
status.ChangedBy = "TEST";
status.ChangedOn = "2014-07-29";
outputData.HandleRequestCompleteEventTypeOUTPUT = status;
// send request to BPM Task Data OData service to complete
odataModel.create("/OutputData", outputData, null,
function sendData_OnSuccess(oData, response) {
alert("Task has been completed successfully");
function sendData_OnError(oError) {
alert("Task could not be completed");
But it stops when executing the second statement (var status = odataModel.getProperty("/InputData('" + taskId "')...).
I would really appreciate if you could help me!
Thanks in advance.
Best regards,
Thorsten.
P.S.: Our system is running NW 7.40 SP07.Hi again,
As most of the time, I had to solve my issues published on SCN on my own
My mistake was, that I've retrieved the 'handleRequestType' of my OutputData from the InputData.
It seems that having all subtypes in the structure causes trouble, because I fill only to fill two fields.
In the end I build OutputData myself and it works now...
So in fact it's possible to create an proper OutputData without a binding of InputData.
controller.js
completeTask : function() {
// Get TaskID and data model
var taskId = getValueOfURLParameter("taskId");
var odataModel = this.getView().getModel();
// Create OutputData
var outputData = {};
// Create all needed subtypes
var handleRequestType = {};
var status = {};
var request = {};
// Fill values for fields that need to be sent
status.ChangedBy = sap.ui.getCore().byId("inputStatus").getValue();
request.ReferenceNumber = sap.ui.getCore().byId("inputRequest").getValue();
// Build OutputData
handleRequestType.Status = status;
handleRequestType.Request = request;
outputData.HandleRequestType = handleRequestType;
// Complete task with built OutputData
odataModel.create( "/OutputData", outputData, null,
function sendData_OnSuccess(oData, response) {
alert("Task has been completed successfully");
function sendData_OnError(oError) {
alert("Task could not be completed");
view.js
createContent : function(oController) {
// Text input fields which will feed the OutputData
var oInputStatus = new sap.ui.commons.TextField("inputStatus");
var oInputRequest = new sap.ui.commons.TextField("inputRequest");
// Button to complete the task
var oButton = new sap.ui.commons.Button( {
text : "Complete",
style : sap.ui.commons.ButtonStyle.Accept,
press : (function() {
oController.completeTask();
Just make sure that you explore your OuputData before via a tool like Postman (Chrome Addon).
First do a GET request:
http://<host>:<port>/bpmodata/taskdata.svc/<taskID>/OutputData
Then look for a "/XYZ" part in the response.
In my case it looked like that:
<link href="OutputData('<TaskID>')" rel="edit" title="OutputData"/>
<link href="OutputData('<TaskID>')/HandleRequestType" .../>
So I could go on to explore my output data, by sending the following GET request in Postman:
http://<host>:<port>/bpmodata/taskdata.svc/<taskID>/OutputData?$expand=HandleRequestType
Now you have to repeat that until you find the data type that you want manipulate.
If you found out how your OutputData looks like, you can build it easily on your own (see my controller.js).
Maybe I'll write my first blog about it -
A contract-manpower and machines -task completed-billing according to hours spent
Hi friends,
The business requirement is
1. participating customer tendering process,
2. given quotation to customer
3. once quotation is matured contract will be awarded
4. now a crew members and set of equipment will be deployed at customer site and start work, the work contains different phases, once the first phase is completed invoice is raised to customer
Questions:
1. How do i track what are all the eqipments are deployed
2. how many man power is delpoyed?
3. how do i book the cost of equipment and man power for the project/ task spent?
4. how do i raise the bill to customer ?
experts ,please advice me a clear solution for this requirement
Regards,
Pratheep1. How do i track what are all the equipment's are deployed
Equipment's will be installed in functional locations, Plant = Functional location and first install the same when mobilizing @site. You can view in report IH08.
2. how many man power is delpoyed?
In HR master data organizational assignment will be there where personal subarea can be the project location. Please check with your HR consultant.
3. how do i book the cost of equipment and man power for the project/ task spent?
Depreciation cost of the equipment will be at the company level.It can be apportioned to the project.Other maintenance cost of equipment and running cost can be captured in the order and the same can be settled to the respective WBS periodically.
4. how do i raise the bill to customer
Create the contract once the quanity is certified raise invoice reference to the order [Bill Certfied.
Regards,
Senthil Venugopal -
BPM API over T3 Protocol using Virtual IP
Hi
JDeveloper/SOA/BPM 11.1.1.7
Weblogic 10.3.6
I have a custom dashboard written in ADF using BPM API.
The Tasks list are queried using the T3 protocol as mentioned in Building a Custom Worklist Client - 11g Release 1 (11.1.1.6.3)
The API works and I am able to query tasks and open them.
The Middleware infrastructure is as follows.
We have a Cluster with 2 managed servers.
As of now when calling the API, I am giving the URL of the server on which the tasks are present as comma separated server and port names.
t3://ms_server_1:port,ms_server_2:port
Our administrators have created a VIP (Virtual IP) for the WLS and for the ADF application and web services, we are able to use the VIP url (http)
I was wondering if there is any way to use the VIP for T3 protocol as well?
The problem if we don't use the VIP is that when we open the tasks, they are pointing to the individual managed servers.
So when one managed server is down, then the tasks cannot be open and the application will not work normally.
And also if we have enabled security for the application it will ask the user to login second time when the task is opened.
Can anyone please let me know if there is any way to use VIP url on T3 protocol ?
Thanks for any help
SameerHi Anshul
Thank you very much for replying.
Actually I forgot to mention that we are using OHS (Oracle HTTP Server) and not Apache.
And our administrators said that the HTTP Tunneling is enabled already. The httpd.conf already has those tags
I tried to use the VIP host name (1. without any port, 2. with 80 port and 3. with the port same as the managed server) but when I run my program, we get the following Exception
Exception
oracle.bpm.client.common.BPMServiceClientException: oracle.bpel.services.workflow.client.WorkflowServiceClientException: javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3://vip_host_name.com:7831: Destination unreachable; nested exception is:
java.net.ConnectException: Connection refused: connect; No available router to destination]
at oracle.bpm.client.BPMServiceClientFactory.getBPMUserAuthenticationService(BPMServiceClientFactory.java:250)
at com.abc.publicModel.util.BPMTaskUtil.getIBPMContext(BPMTaskUtil.java:949)
at com.abc.publicModel.util.BPMTaskUtil.getUserTaskListWithDetails(BPMTaskUtil.java:133)
at com.abc.publicModel.util.BPMTaskUtil.main(BPMTaskUtil.java:972)
Caused by: oracle.bpel.services.workflow.client.WorkflowServiceClientException: javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3://vip_host_name.com:7831: Destination unreachable; nested exception is:
java.net.ConnectException: Connection refused: connect; No available router to destination]
at oracle.bpel.services.workflow.client.WorkflowServiceClientContext.createInitialContext(WorkflowServiceClientContext.java:686)
at oracle.bpel.services.workflow.client.WorkflowServiceClientContext.getJNDIInitialContext(WorkflowServiceClientContext.java:341)
at oracle.bpm.client.BPMServiceClientContext.getJNDIInitialContext(BPMServiceClientContext.java:228)
at oracle.bpm.client.BPMServiceClientFactory.getBPMUserAuthenticationService(BPMServiceClientFactory.java:243)
... 3 more
Thanks
Sameer -
BPM API's to Update Protected Flexfield on Task
I have a question regarding Protected Flexfields on Tasks.
We are using Proected Flexfields on Tasks that we create in the Worklist.
So for example you create a New Human Task and as part of the Task Payload we have the Surname populated into Protected Text Flexfield1.
We have a View created that views these Tasks, When you view that Task in the Worklist View it shows the Surname (eg. "Smith") in the View.
However if the Surname gets updated in the Database to "Jones" then the Task View still shows "Smith" as the Task has not been recreated and therefore the Task Payload still has "Smith" defined.
My question is, are there any BPM API's available for us to update the Task so that the Protected Text Flexfield1 gets the new Value of "Jones"?
I can see the Task in the WFTASK table in SOA_INFRA but wasn't sure if there were any public API's available to update the column.
I don't really want to complete the Task and recreate it again as all the Task SLA's would get messed up.
Interested to here any thoughts on this.
RegardsShruti
You may check this link if it helps
http://www.oraclebusinessapps.com/?p=42
Please refer http:\\irep.oracle.com for more details
Thanks
AJ -
BPM 11g: problem initiate task from API
Hi all,
First of all, i have deployed a BPM process and his initiator task is a human task implementation. Then the user can click on it in teh workspace and they are redirect to my J2EE aplication, in wich i want throw a new instance of my process when the user complete the form data.
I'm do know how to implement it, and i trying two ways:
one: initiate a process instance with oracle.bpm.service. package the the server give me this error:
http://kr.forums.oracle.com/forums/thread.jspa?messageID=9244238
java.io.InvalidClassException: oracle.bpel.services.workflow.verification.impl.WorkflowContext; local class incompatible: stream classdesc serialVersionUID = 3642712178109525089, local class serialVersionUID = 1
two: initiate a new task programmatically, is it wright? a new task of my human initiator task from java is that i need for create a BPM Process? i don't know, becouse i get this other error:
http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10224/bp_worklistcust.htm#CIHEAFBB
WSM-09004 Component auditing cannot be initialized
any ideas? thank you very much in advance, and sorry for my poor english.I hope you have got the solution for this problem.
will you please share the solution. as I am also facing the same...
Thanks -
BPM API fetching Tasks (7.3)
Hi All,
based on this documentation: http://help.sap.com/saphelp_nw73/helpdata/en/79/d505324ef8429489979e43b76b56a9/content.htm i tried to fetch all active tasks for the currently logged in user, but the result is always a empty list. I found the following thread which is nearly facing the same problem: UWL api doesn't seem to see items ,but i dont know how to configure the system alias or if its even the fault of the alias.
Are there any other important steps to execute for using the new BPM API? What could be missing in the configuration?
Best Regards
MichaelHi,
at the moment my web.xml looks like this (based on http://www.urz.uni-heidelberg.de/saphelp/helpdata/DE/34/96c041a2236a24e10000000a1550b0/frameset.htm):
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>LocalDevelopment~d253_test_web~demo.sap.com</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>bdadmin</role-name>
<role-name>SAP_BPM_SuperAdmin</role-name>
<role-name>administrators</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<security-role>
<role-name>bdadmin</role-name>
</security-role>
</web-app>
and my web-j2ee-engine.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-j2ee-engine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="web-j2ee-engine.xsd">
<spec-version>2.4</spec-version>
<security-role-map>
<role-name>bdadmin</role-name>
<server-role-name>SAP_BPM_SuperAdmin</server-role-name>
<server-role-name>administrators</server-role-name>
</security-role-map>
<login-module-configuration>
<login-module-stack>
<login-module>
<login-module-name>BasicPasswordLoginModule</login-module-name>
<flag>SUFFICIENT</flag>
</login-module>
</login-module-stack>
</login-module-configuration>
</web-j2ee-engine>
If i call my index.jsp i get a little popup window where i can put my username and password in, but then it gets stuck. The http-request is loading endless and on serverside the responsible thread got a infinite loop - resulting in a server restart.
Can someone provide me a working example of these xml files? -
Does BPM API support XA transaction ? and how to control
A customer want to use ADF AM to update database and use BPM API to create todo task.
The BPM API is ToDoTask() on oracle.bpel.services.workflow.task.ITaskService.
If the BPM API support XA transaction:
1.can ADF taskflow support AM and BPM mixed transaction ?
2.can Java code control the XA transaction,not in taskflow ?this can be achieved by using
<config-property name="TransactionIsolation" type="int">2</config-property> -
BPM 11g: JAVA API and Webservice API
Who knows BPM 11g: JAVA API and Webservice API?
Customer want to call BPM 11g between Heterogeneous systems, such .net framework. One way is use webservice API, I think, but where can find it? thank youWhen you create a BPM application in 11g, you're actually creating a SOA composite application with a BPMN component in the composite. From within the BPMN editor, you can specify the interface (parameters) of each start node in the process. If you select a start node, look at the implementation tab, you'll see a properties group that lets you define the interface one property at a time, or by selecting an interface from the catalog.
By defining these properties you're also defining the shape of the Web Service interface that will automatically be created in the composite. If you switch to the composite view, you'll see your BPMN process with a wire to it from a Web Service that's generated from the interface defined in the BPMN editor. The naming convention is the BPMN process name with ".service" appended. When you deploy the BPMN process, the web service will also be deployed, since it's also part of the composite. From Enterprise Manager (EM) you can test the service and get the WSDL, which could be used by other applications (e.g. .NET) to start and interact with a process instance.
This is one of the advantages of the 11g architecture. The composite exposes services to consumers/clients. The implementation could have been BPEL, BPMN, a Mediator, Java/EJBs, or any combination working together. To the consumer, it's just a web service.
In case your next question was about security ... you won't see properties about security in the BPMN editor. You use Web Service Manager to apply security or other constraints to the web service endpoint. -
How to access Task details using BPM API for substituting user
Hi Expert,
I need one help, we have a requirement, in which I wanted to access the BPM task details of a user which is substituting user using BPM API.
Substituting user's name is not exist in Potential owner of Task. That’s why Using method "getMyTaskAbstracts(Status)" we cant acess those task which assigned by Substited user.
Kindly let me know if there is any way, we can get task details of the task which assigned by substituted user to substituting user.
Regards
DivPl use this api.
getTaskAbstractsForMySubstitutedUsers.There are couple of variations u can use.
Thanks
Manish -
Getting completed process details using BPM API
Hi Experts,
is there any way to get the completed process details using BPM API or Analytics API for a specific process definition (in 7.31 SP10)?
my observations:
1. using getRunningProcessInstances(process_def_id) of ProcessInstanceManager, I can fetch running process instances.
but I need completed process instances.
Thanks in advance.
Best Regards
-Trimseems no way
-
BPM java api which accept task by push machniasm
Hi All,
I want to expose web service , which will get task from bpm. I can pull task from bpm for loggedin user, is there any way bpm will push task to this service ? Any api available ?Hi Arvind,
If you are looking for code to get the current logged in user all the task just like in the Uwl or bpm inbox then it is possible.
Kindly refer to the document link provided below.
How to get All Task of a user to design your custom UWL using BPM API as a rest full service.
Refer to Step 5 in the document you will find the code you are looking for.
Cheers
Piyas -
REST API to get and update Task Data
On CPSC 9.4.1 R2, I am unable to find any REST API operation to get and update task data details (all the service form and dictionary fields).
Task operations only return limited task meta-data not the details of the task/requisition data submitted, fields, etc.
Does anyone know if such thing exist?
Thanks.Hi Rakesh,
To enable anonymous Search REST queries, we need to create queryparametertemplate.xml and upload it to the correct library in SharePoint.
From your description I can know that you have created the file, then I recommend to check the things below:
Please use “QueryTemplatePropertiesUrl” instead of “queryparametertemplate” in the Search REST API query as following: &QueryTemplatePropertiesUrl='spfile://webroot/queryparametertemplate.xml'.
Make sure that the Query Properties you need have been added to the QueryProperties element in the queryparametertemplate.xml file.
Make sure that the query parameters you need have been added to the WhiteList element in the
queryparametertemplate.xml file. For example, if you want to use Refiners in the REST API, then the Refiners should be added to the
WhiteList element in the queryparametertemplate.xml file as following:
<a:string>Refiners</a:string>.
You can also debug setting properties in anonymous Search Rest queries following the link below:
http://www.mavention.com/blog/debugging-setting-properties-anonymous-search-rest-queries
More references about anonymous Search REST:
http://blog.mastykarz.nl/configuring-sharepoint-2013-search-rest-api-anonymous-users/
http://msdn.microsoft.com/en-us/library/office/jj163876%28v=office.15%29.aspx#bk_AnonymousREST
Thanks,
Victoria
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Victoria Xia
TechNet Community Support
Maybe you are looking for
-
Hi, I have an ongoing problem with scanning from my Canon Pixma to my Mac Airbook. The printer scans, but the image is not made available on the computer - Image Capture says that 'no device is connected'. Having done some internet research, I see th
-
What do I need to do to correct the problem. Unistalling and reinstalling iTunes has not helped. I have PowerToGo on my HP. I can burn through this program but want to do so by iTunes. Any Suggestions that would help? Diagnostics for iTunes states th
-
System-wide crashes, WoW at center
I was playing a Strand of the Ancients last night when WoW suddenly crashed. No new addons; the application had been stable for weeks or months. When WoW crashed, other programs I was running (Firefox, Word, etc) also crashed. I restarted and tried t
-
DV tape saved for later editing
I have lots of old DV tapes and would like to find a way to copy them to the computer, then save them on DVD disk, or some other media other than hard disk. Then I would be able to work on them at a later date. I now have a mini-DV recorder and have
-
Want to expand columns on planning screen for shipment
Dear All, I need to expand 3 Z-field columns on planning screen for shipment. With Note# 400368, I need to add my Z-fields in structure VTTKD and apply them to the ALV grid with modifications of FM RV_SHIPMENT_VIEW, however, in my project, we cannot