Workflow container -- urgent
Hi,
Iam creating a workflow and a container and i have to update container with multiple values (i.e pass internal table values into that container ) .
but Its working for single entry.
How can it be acheived for multiple.
Regards,
Vimal
Hi Vimal
Set the properties of container element as multiline.
Then you can pass the internal table values.
Regards,
Hemalatha.
Similar Messages
-
Upload file in Web Dynpro and add to Workflow container as SOFM object
Hi!
I have a Web Dynpro for ABAP application that should send attachments of uploaded files to a workflow container. I have already managed to do this, and it works fine for TXT files, but when I try to attach a WORD (.DOC) file the file looks corrput when I open it from the SAP inbox.
When uploading files in Web Dynpro it is as an XSTRING. I have tried out the following alternatives regarding convertion of the XSTRING before it is inserted in the SOFM object:
1) Convert from XSTRING to STRING using codepage 4110.
Then it is split into a string table of 255 chars
2) Convert from XSTRING to STRING using codepage 4102
Then it is split into a string table of 255 chars
3) Convert from XSTRING to BINARY format
I use function module 'SWL_SOFM_CREATE_WITH_TABLE'
and then swf_create_object lr_sofm 'SOFM' ls_sofm_key.
before I call some macros to fill the container.
Anyone else who have tried to do this with success? I'm greatful for any help.
Regards, TineHi,
I had the same problem in the last days and finally I got a quite simple solution:
I had a look at the FM SWL_SOFM_CREATE_WITH_TABLE an noticed that it calls another FM (SO_DOCUMENT_INSERT_API1) which has a tables parameter for HEX data and is actually able to create a SOFM object from HEX data.
I simply copied SWL_SOFM_CREATE_WITH_TABLE as a customer FM and applied a few changes to make it accept HEX data:
First I added a new table parameter in the interface which gets the HEX data from the calling application (uploaded data using BIN format):
OBJECT_CONTENT_HEX LIKE SOLIX
Here is the code of the FM (I marked all additional and changed lines with a comment):
function z_test_sofm_create_with_table .
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(NOTE_TITLE) LIKE SODOCCHGI1-OBJ_DESCR OPTIONAL
*" VALUE(DOCUMENT_TYPE) LIKE SOODK-OBJTP DEFAULT SPACE
*" EXPORTING
*" VALUE(SOFM_KEY) LIKE SWOTOBJID-OBJKEY
*" TABLES
*" NOTE_TEXT STRUCTURE SOLISTI1 OPTIONAL
*" OBJECT_CONTENT_HEX STRUCTURE SOLIX OPTIONAL
*" EXCEPTIONS
*" ERROR_SOFM_CREATION
data: region like sofd-folrg.
data: folder_id like soodk.
data: l_folder_id like soobjinfi1-object_id.
data: document_data like sodocchgi1.
data: document_info like sofolenti1.
data: object_content like solisti1 occurs 0 with header line.
data: lines like sy-tabix.
*- set default
if document_type is initial.
document_type = 'RAW'.
endif.
*- create office object
*-- get dark folder
region = 'B'.
call function 'SO_FOLDER_ROOT_ID_GET'
exporting
region = region
importing
folder_id = folder_id
exceptions
communication_failure = 1
owner_not_exist = 2
system_failure = 3
x_error = 4
others = 5.
if sy-subrc ne 0.
message e696(wl) "<== Add message class
raising error_sofm_creation.
endif.
*- get description
if note_title is initial.
read table note_text index 1.
note_title = note_text.
endif.
*-- create office document
document_data-obj_name = 'ATTACHMENT'.
document_data-obj_descr = note_title.
document_data-obj_langu = sy-langu.
object_content[] = note_text[].
describe table object_content lines lines.
document_data-doc_size = ( lines - 1 ) * 255 + strlen( object_content ).
if object_content[] is initial. "<== insert
describe table object_content_hex lines lines. "<== insert
document_data-doc_size = lines * 255. "<== insert
endif. "<== insert
l_folder_id = folder_id.
call function 'SO_DOCUMENT_INSERT_API1'
exporting
folder_id = l_folder_id
document_data = document_data
document_type = document_type
importing
document_info = document_info
tables
object_content = object_content
contents_hex = object_content_hex " <== Insert line
exceptions
folder_not_exist = 1
document_type_not_exist = 2
operation_no_authorization = 3
parameter_error = 4
x_error = 5
enqueue_error = 6
others = 7.
if sy-subrc ne 0.
message e696(wl) "<== Add message class
raising error_sofm_creation.
endif.
*- set export parameter
sofm_key = document_info-doc_id.
endfunction.
The returned SOFM key I added to a container element. The element refers to event parameter of type OBJ_RECORD in my ABAP OO Class
Using this function I was able to raise an event by using Method cl_swf_evt_event=>raise
that invoked a workitem containing an Excel-File i had uploaded as binary file and passed to the FM z_test_sofm_create_with_table as document type 'XLS'.
In the woritem preview when clicking on the attachment the file was opened directly in Excel.
Actually the new lines for calculation the file size is not yet quite correct. At first glance it does not seem to cause any trouble, but I will stll check that. In FM SO_OBJECT_INSERT the size is again checked and calculated if initial, so leaving size initial might also be an option.
I hope this helps anyone having a similar issue.
Greetings,
Michael Gulitz -
Access the adobe form data in the workflow container for further processin
HI,
I am using HCM processes and Forms. I need to access the form data in the workflow container once the workflow kicks off.
I need to access these data as would need it for further processing in the workflow.
I know that TS17900110 allows to import form conatiner to
-> WF Container in the field name and value pair. But I need to access a lot more fields than what is in the task. Is there a standard task which allow to retrieve all the fields in the form in one task or do I need to develope a custom class to do that. If so could you please provide some clue as in how to code this specific requirement as i am somewhat new to OO ABAP.
Thanks...hi,
in the livecycle designer under libary tab u have webdynpro tab--->choose submit to sap button and place it in the adobe form ur designing. u can use this button to trigger the code that u have written in webdynpro java.
for eg if u have
a value node details
and under that two value attr fname,lname
import the model (Insertdata---it has two import param fname and lname)u need for updating the data to r3 system.
in the ctrller have a method submit.Here write the code to insert fname and lname into the db.
IPrivateMyForm.IDetailsElement elem = wdContext.nodeDetails().currentDetailsElement();
Insertdata_Input input = new Insertdata_Input();
wdContext.nodeInsertdata_Input().bind(input);
input.setFname(elem.getFname());
input.setLname(elem.getLname());
try
wdContext.currentInsertdata_InputElement().modelObject().execute();
wdContext.nodeOutput().invalidate();
catch (Exception ex)
{ ex.printStackTrace();}
ul bind details to the datasource.
when u edit ur interactive ui element these attr(fname and lname) vl be visible under dataview tab u can drag and drop them to the form
now add submit to sap button in ur form.
this button correspond to the onactionSubmit dat u have written in the ctrller.
so wen u click this the data vl be inserted
Regards
Jay -
Adding Word attachment to a SOFM object and then to Workflow container
Hi!
I have a Web Dynpro for ABAP application that should send attachments of uploaded files to a workflow container. I have already managed to do this, and it works fine for TXT files, but when I try to attach a WORD (.DOC) file the file looks corrput when I open it from the SAP inbox.
When uploading files in Web Dynpro it is as an XSTRING. I have tried out the following alternatives regarding convertion of the XSTRING before it is inserted in the SOFM object:
1) Convert from XSTRING to STRING using codepage 4110.
Then it is split into a string table of 255 chars
2) Convert from XSTRING to STRING using codepage 4102
Then it is split into a string table of 255 chars
3) Convert from XSTRING to BINARY format
I use function module 'SWL_SOFM_CREATE_WITH_TABLE'
and then swf_create_object lr_sofm 'SOFM' ls_sofm_key.
before I call some macros to fill the container.
Anyone else who have tried to do this with success? I'm greatful for any help.
Regards, TineHello there.
This is probably an usability question that you should ask Microsoft, not us. In any case, you probably need to open the document (it's probably a document that can't be open inside Firefox, so use the appropriate software) and copy it from there.
I'm sorry I can't be of more help. -
Retrieve workflow container data in programming exit
I am trying to use a programming exit in Workflow in order to amend the task container for the receipients field of a "Send Email" step. The reason why we are not determining the receipients in the usual way is because we hold the receipients (amongst other data) in a separate Z* table - this needs to stay this way.
I created a class and copied method CHANGE_CONT_ELEMENT to base my altered code on. The method is triggered fine when testing the workflow. Here is what it now looks like:
method CHANGE_CONT_ELEMENT .
DATA: container TYPE REF TO if_swf_cnt_container,
if_swf_cnt_container,
cont TYPE REF TO IF_SWF_IFS_PARAMETER_CONTAINER,
name TYPE swfdname,
lh_wihandle TYPE REF TO if_swf_run_wim_internal,
l_exception TYPE REF TO cx_swf_cnt_container,
l_wiid TYPE sww_wiid,
w_container type ref to IF_SWF_IFS_PARAMETER_CONTAINER,
w_names type SWFDNAMTAB,
wa_names type line of SWFDNAMTAB,
w_value(30).
w_container = me->m_ctx->GET_WI_CONTAINER( ).
w_names = w_container->LIST_NAMES( ).
data: w_name type SWFDNAME.
w_name = 'TEST-NUMBER'.
TRY.
loop at w_names into wa_names.
CALL METHOD w_container->get
EXPORTING
name = wa_names.
endloop.
CATCH CX_SWF_CNT_ELEM_NOT_FOUND .
CATCH CX_SWF_CNT_ELEM_TYPE_CONFLICT .
CATCH CX_SWF_CNT_UNIT_TYPE_CONFLICT .
CATCH CX_SWF_CNT_CONTAINER .
ENDTRY.
ENDMETHOD.
Now w_names retrieves the names of the fields fine (including my "TEST" entry which I declared in the Workflow Builder), but the GET method causes a "CX_SWF_CNT_ELEM_NOT_FOUND" exception.
Is this the correct way to retrieve data out of a Workflow container within a WF programming exit? What am I doing wrong?
Kind regards,
Michael KochHi Michael, Paolo & Other experts,
I am trying to understand when, why and how to use a 'programming exit' in a SAP workflow.
(1) Did you figure out the solution to your problem?
(2) Is there any material / tutorial on use of a 'programming exit' in a workflow?
Thanks
Abaper -
How to create a container element in workflow container
Hi,
I am learning WF by a Tutorial. In which absence of notification was considered as example. As per tutorial, I created two task for creating a Notification and checking a absence
In the next step it ask to create a container element(approver) to workflow container. How i can create the same.
Also, please clarify me on the binding between task container and workflow container....with this example
Thanks
SureshHi,
On the workflow builder LEFT side below the navigation area u can see this <Double-Click to Create>.
Double click and create the container.
During binding it looks as follows.
Workflow -
> Task
Workflow <----
Task
What happen here is from workflow the data passed to task and it is used for processing, after that it returned back to the workflow. Now u can create the container on bothside and bind the data. ie Variables.
Creating container u can refer : http://www.****************
Reward for useful answer.
Richard A -
Over Time Workflow Container elements not updated
Hi,
I am using Standard Task TS20000459 for approval of Overtime entered for an employee in CAT2 transaction.
Work item is getting generated to his manager's inbox.
Issue is, subject of the work item should have employee number and Employe name. Standard Task contains Container elements &TS_PERNR& and &TS_ENAME& which is not getting filled with any values.
Can any one suggest me how to get the same?
Regards,
Saravana PerumalHi Shanti
I faced the same problem...And i resolved that problem by binding...
Create the container element for PERNR and ENAME in the standard task ts20000459 as well as in workflow container.Then bind those container values.
Before bind the workflow and task container, you have to bind the workflow container with the event container.
Regards,
Hemalatha. -
Workflow container element empty
Hi all,
I have the following problem:
- my workflow container has an element named 'AbsenceRequest'
- in the element 'AbsenceRequest' I have a subelement named Comments which is a table
- I created a business object type 'ZESS_AREQ' in SWO1 which has an attribute named 'Comments' and a method named 'Create'
- In a report I create an object of this object type using swc_create_object and I set subelement 'Comments' to a value 'test' using swc_set_table
- Then I call method 'Create' of the created object
- In that method I retrieve the value from the container using swc_get_table and I receive value 'test'
Then I have the following piece of code:
swc_free_object lf_object.
MOVE lw_areq-pernr TO object-key-personnelnumber.
MOVE lw_areq-id TO object-key-id.
swc_create_object lf_object 'ZESS_AREQ' object-key.
IF sy-subrc EQ 0.
swc_raise_event lf_object 'Created' container.
COMMIT WORK AND WAIT.
ENDIF.
Which should start the corresponding WF (which it does), but in my WF container the subelement Comments is empty...
Any idea what goes wrong?
Many thanks in advance!
JulienWell actually the WF container element has one entry but this entry is empty (blank)...
-
Workflow issue - Main workflow container elements are not updated.
Hi All
We have implemented N-step badi for approval process and for this we have activated one workflow which contains subworkflow .
During approval process , only the subworkflow container elements( approver list and last approver) getting updated with status and time.But main workflow container elements is not updating with these details.
Binding between main workflow and subworkflow is perfect. But reverse binding ( from subworkflow -> main workflow ) will take place once subworkflow is completely finished. But here we will require / need to pass some information from sub workkflow to main workflow when still subworlflow in process( before completed itself).
Please let me know is there any process / steps is required to pass values between subworkflow to main workflow ( binding is perfect).
Please let me the way how I can update the main workflow container from subworkflow container or from any step in sub workflow .
In subworkflow . we have loop of approvers and it will send workitems to approvers one by one.
Here i need to update Main workflow with the information like last approver and approver list with status and approved time.
So please suggest how Can I update main workflow container from subworkflow while subworkflow is still in process( subworkflow not yet completed).
Kindly reply me ASAP.
Thanks and Regards
Madhukar .Yes I am setting SWC_SET_ELEMENT for my container values,the ones for which i have defined as EXPORT.
And I have checked the task also...
Everything has been checked properly..The binding is fine.
Thanks & regards,
Ravikiran Kallimath -
How to use data of multiline element from workflow container
Hi,
Can you please tell me how to access rows of multiline element of workflow container.
Scenario is like below.
I have values in a multiline container(table) of workflow container.
Now inside Fork branches i need to check for specific data in the above table and with that condition i have to send workitem.
I hope u can understand,otherwise please revert.
Thanks in advance,
MadhuYou cannot didrectly check the condition...
what you have to do is.. write a inside the method as below and set the flag...and use the flag in condition editor...
SWC_GET_TABLE CONTAINER 'AGENTS' lt_agents.
loop at lt_agents ino wa_agents.
if wa_agents = 'A'.
lv_flag = X.
endif.
endloop.
SWC_SET_ELEMENT CONTAINER 'FLAG' lv_flag.
Create an export parameter FLAG as char1 with export marked.
Do the neccesary bindings from task to workflow.
Then in workflow check this flag in condition editor. -
Passing multiline element to workflow container ? how do i ?
Hello Folks,
I need to pass an internal table to the workflow container...In this container i had already created an Multiline element which the right table type assigned..
I need to call this Workflow using FM SAP_WAPI_START_WORKFLOW.... Eg:
CALL FUNCTION 'SAP_WAPI_START_WORKFLOW'
EXPORTING
TASK = WFNAME
LANGUAGE = SY-LANGU
DO_COMMIT = 'X'
USER = SY-UNAME
START_ASYNCHRONOUS = 'X'
DESIRED_START_DATE =
DESIRED_START_TIME =
DESIRED_START_ZONLO = SY-ZONLO
IFS_XML_CONTAINER =
IMPORTING
RETURN_CODE = lv_return_code
WORKITEM_ID = lv_workitem_id
NEW_STATUS =
TABLES
INPUT_CONTAINER = lt_container_wf
MESSAGE_STRUCT = lt_message_struct
MESSAGE_LINES = lt_msg_lines.
lt_container_wf values should have an internal table to be passed a multiline element.....
I am unble to pass it this way and the error i get is that " Single Line element <XXXX> is being passed several times...
How do i tell the system the the element which is passed is a mulitple element..
Regards,
Anandcheck this code snippet
include <cntn01>.
DATA:
lv_retcode TYPE sysubrc,
lt_cont TYPE TABLE OF swcont,
ls_cont TYPE swcont,
lt_kna1 TYPE TABLE OF kna1,
ls_kna1 TYPE kna1.
SELECT * FROM kna1 INTO TABLE lt_kna1 UP TO 10 ROWS.
swc_create_container lt_cont.
swc_set_table lt_cont 'CUSTOMER' lt_kna1.
CALL FUNCTION 'EWW_WORKFLOW_START'
EXPORTING
x_task = 'WSXXXXXXXX'
TABLES
X_CONTAINER = lt_cont
EXCEPTIONS
INVALID_TASK = 1
NO_ACTIVE_PLVAR = 2
START_FAILED = 3
GENERAL_ERROR = 4
OTHERS = 5
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. -
Multiline attribute vs. table type based attribute in workflow container
Hi,
When we are talking about definition of workflow container attribute, you have to choose a type of attribute from a dictionary and have to decide if it is multiline attribute or single line (flat). If we want to define a multiline string-based attribute, we can do it in the following ways:
— define an attribute type of string and set checkbox on multiline;
— define an attribute table type of string and do not set checkbox on multiline.
My question is:
Is there any difference between these two approaches, described above (flat type + multiline vs. table type + single line)?
Thanks.I don't think that there is any difference. If you set a table type as container element data type, the multiline checbox is checked automatically (and you cannot change that). So eventually the table type container element is the same as a structure type container element with multiline checkbox checked.
EDIT: Or does it behave differently for you?
Regards,
Karri -
Workflow container elements as attachment in an activity
Hi @ all
Iu2019m searching for a resolution to display a multiple attachment in an activity of my workflow.
The scenario is as follows:
An Activity should display the image, a generated attachment (from the User decision before) & the workflow conatainer elemnts of the included task. So far so good. The image and the attachment are displayed in the next activity, but how can I display the container elements?
I need them because the user dynpro-inputs are stored in it. I generate the elements in my task and bind them from the workflow container. And now? What is the next step to get them in an attachment?
THX
REGRADS
Phil
Edited by: Philipp Höfer on May 18, 2010 2:09 PMHi Karri,
thanks again.
if i understand you correctly, i'm going to my Step Task ->(n my case "Display Image"). After that to the tab -> Description and push the button "change text" to insert a new text. But how can i insert my container elemt values.
There is a button "Program Symbol" but their is no entry. The Binding of the task and the workflow container is correctly.
What i am doing wrong?
THX
Regrads
Phil
Edited by: Philipp Höfer on May 19, 2010 12:12 PM -
Rule Result not returned back to Workflow container
Hi ,
We have a workflow where the approver for a Process is Manager of any Orgunit .
Now the manager is determined using a Rule with Category u201CFunction To be executedu201D .
The Business requirement is so that If the immediate manager for any Orgunit is not maintained it will traverse through the entire Org structure unless the Manager is determined. So the Level of the First approver could be of any value starting from 01.
We also have Deadline monitoring active .
Incase the first approver doesnu2019t act within 7 days the Work item should go to the next level Manager ( second approver ).
The level of the second approver depends on the level of the First approver .
Example : If the level of the First approver is 3 then the level of the second approver would be 4 or more.
: If the level of the First approver is 2 then the level of the second approver would be 3 or more.
Hence to achieve the Level dynamically we need to pass the Level of the first approver from the Rule to the Workflow so that it can be used for determining the next level manager in the next task.
In the Function Module which determines the first approver I have got the Value for the Level .
I also have assigned that value to the Rule Container (_WI_RESULT , this is the only parameter which can be used for the Export ) using the Macro SWC_SET_ELEMENT .
I also have done the binding from the Rule to the Workflow. But the value is not populated in the Workflow container .
Could any one please help me on solving this ?? Any other idea to achieve this is functionality is welcome too.
Regards,
RakaHi Arghadip,
First of all thanks for the reply .
We alreday have some logic like this in place .
But we want to imporve the system performance .
We get the agent in one task from the Rule .
Now again if we try to get the same agent in a method ,won't it be doing the same task twice.
So we are trying to return the manager Counter value from the Rule container itself to the Workflow container so that it can be used to get the escalation manager.
Regards,
Raka -
Can we pass Internal tables to workflow container?
workflow container has a size limitation, we need to pass any infotype to the workflow container, so can we pass internal tables to workflow container or is there any alternate solution?
Thanks in Advance
HariHi,
Check the <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/a6/9bac935f2c11d194a40000e82dec10/frameset.htm">Multiline Container Element Definition.</a>
Regards
<i><b>Raja Sekhar</b></i>
Maybe you are looking for
-
Dualboot windows 8.1 with windows 7(recovery product disk)
Hi, I am currently running windows 8.1 with pre-installed windows 8.I want to dualboot windows 8.1(current windows system) with windows 7 home premium.I have made a hard drive partion and now i have "2" hard disks 500 gb both of "2".I have a product
-
Problem in displaying Bitmap in Smartform
Hi All, I have requirement of displaying company logo along with other logos like ISO logo etc. I combined all logos in one bitmap with white background. When I insert the bitmap in other applications its printing correctly. When I import same bitm
-
Editing a form created with trial version of XI
I have some forms that I have created with the trial version of Adobe XI and now I need to edit them. I keep getting an error that says the file is restricted and asks me to save a copy that is not restricted. When I save the copy, it won't let me ed
-
How can I have the permission to modified my windows files from OSX?
I've had installed the Windows OS on my macbook pro and I want to modified some files on the windows 7 folder from the OSX . I can do some operation like copying the file from the windows user folder and paste it on the Macintosh partition hardisk,
-
Is their a way to rename pictures in iphoto?
I am creating a video that is a combination of video and photos. I want to be able to drop the photos by folder into the video, but I want them to stay in the order that I put them in, not by date. What do I do?