R/3 workflow information
Is it possible to store "workflow" information in BW? We currently use a customised program in R/3 to retrieve this information, but would prefer to access it via BW if possible.
Regards, Frederick
Hi Niharika,
I think you have a typo in your code. You can retrieve the work item id by using [code]<Property name="DynamicParameter" value="wi_id=${item.<b>externalId</b>}" />[/code] instead of [code]<Property name="DynamicParameter" value="wi_id=${item.<b>externaId</b>}"/>[/code]
In addition, you can get values from the work item container by extracting them as custom attributes:
[code]<ItemType name="uwl.task.webflow.TS90000001.<system id>" connector="WebFlowConnector" ...>
<ItemTypeCriteria ... />
<CustomAttributes>
<CustomAttributeSource id="WEBFLOW_CONTAINER" objectIdHolder="<element name>" ...>
<Attribute name="<element name>" type="string" displayName="<element description>" />
</CustomAttributeSource>
</CustomAttributes>
<Actions>
<Action name="launchWebDynPro" handler="SAPWebDynproLauncher">
<Properties>
<Property name="DynamicParameter" value="<custom param>=${item.<element name>}" />
</Properties>
<Descriptions default="" />
</Action>
</Actions>
</ItemType>[/code]
Hope this helps,
Mikko
Similar Messages
-
UCCE 7.5 - CAD - In which database workflow information is stored?
Hi guys,
I'm wondering in which database the workflow information is stored for CAD agent.
In fact, how does Cisco Desktop Administrator works?
Thank you very much for your attention.
Best Regards,All is stored in the LDAP - Directory Services. The Sync process pulls ICM information from the AW DB and inserts it into the LDAP.
You can see all of the info with a LDAP browser. Download a free LDAP Browser and connect anonymously - you can browse it and see how it is laid out. I have posted instructions on how to access the LDAP before, if you care to search for the post.
Regards,
Geoff -
Read currently running workflow information
Hi everybody,
Please let me know if anyone came across a situation where we need to read the currently running workflow information..
To be precise, I have a workflow which starts a method, which in turn executes code present in an include.. Now, in this include, I need to know whether it was called from the workflow.. (What i mean to say is that, the include could have been called from many places.. like BAdI methods etc.. I need to execute a specific action only if it was called from the workflow.)
The plan could be something like.. "read all the currently running workflows and get the related information" .. Any idea how????
Regards,
Arun BHello again,
well, as long nobody else runs jobs using this background-user or changes the user-ID of the workflow-system, it'll work fine.
To be more precisely on the WF-BATCH user, you could also check for the configured name. Anyways, for a quick check/fix you could be fine when using this procedure.
However it'll not work within work-item execution from dialog-tasks, as then the actual user processed the code.
So here's the code snippet to determine the workflow user's user-id:
*Method signature:
* RETURNING VALUE( RV_WF_BATCH ) TYPE XUBNAME
* "User Name of workflow background user
method GET_WORKFLOW_USER.
DATA: lv_rfcdest TYPE RFCDES-RFCDEST.
* Read the RFC destination from workflow basic customizing
CALL FUNCTION 'SWW_WIM_RFC_DESTINATION_NAME'
IMPORTING
WORKFLOW_DESTINATION = lv_rfcdest.
* Read the user-ID from this destination
CALL FUNCTION 'RFC_READ_L_DESTINATION' "#EC CI_USE_WANTED
EXPORTING
DESTINATION = lv_rfcdest "#EC CI_USE_WANTED
AUTHORITY_CHECK = ' '
IMPORTING
USER = rv_wf_batch
EXCEPTIONS
OTHERS = 0.
endmethod. -
Hi Gurus,
I have a below requirement. Appreciate if anyone can help.
Suppose if we do Assignment Change/New Hire/Termination etc functions through SSHR, then initially it stores
temporary on hr_api_transactions,hr_api_transaction_steps,hr_api_transaction_values till final approver approves it.
Once it is approved, it triggers API and commits into the system. User need a report to know who initiated,start_date,end_date and who approved etc details. As far i know it stores all these info in Workflow tables until DBAs purge it. Is there anyway we can get these details using Workflow tables. If Yes, can anyone have idea/query to get it.
Is there any approval history table which stores this information(person_id,transaction_id,start_date,end_date,status etc)?try this to start:
SELECT *
FROM (SELECT wi.item_type,
wi.item_key,
wi.root_activity,
wav.display_name process_name,
wav.read_role,
wav.write_role,
wav.execute_role,
wav.begin_date wav_begin_date,
wav.end_date wav_end_date,
wi.root_activity_version,
wi.owner_role,
wi.parent_item_type,
wi.parent_item_key,
wi.parent_context,
wi.begin_date,
wi.end_date,
wi.user_key,
witv.NAME,
witv.display_name,
wf_directory.getroledisplayname
(wi.owner_role) AS role_name,
wf_fwkmon.getitemstatus
(wi.item_type,
wi.item_key,
wi.end_date,
wi.root_activity,
wi.root_activity_version
) AS status_code,
wf_fwkmon.getroleemailaddress (wi.owner_role) AS role_email,
DECODE
((SELECT COUNT (0)
FROM wf_items wi2
WHERE wi.item_type = wi2.parent_item_type
AND wi.item_key = wi2.parent_item_key),
0, 'WfMonNoChildren',
'WfMonChildrenExist'
) AS child_switcher
FROM wf_items wi,
wf_item_types_vl witv,
wf_activities_vl wav
WHERE wi.item_type = witv.NAME
AND wav.item_type = wi.item_type
AND wav.NAME = wi.root_activity
AND wav.VERSION = wi.root_activity_version ) qrslt
WHERE item_type = :1
AND begin_date >= TO_DATE ('30-MAY-2010 08:00:00', 'DD-MON-YYYY HH24:MI:SS' )
ORDER BY item_key,wav_begin_date -
Workflow information combine to one view/list
I current have a list setup in sharepoint, with workflow created.
I have created the rule using custom workflow created in designer.
1)First guy fills in content of list and starts the workflow. 2) 2nd guy is assigned certain information to provide, and he does that. 3) 3rd guy will need information from both guys and make decision (approved or rejected).
My issues is when 3rd guy is assigned to the task, he can only view stuff from 1st guy. Seeing the information from the 2nd guy is a lot harder and not that clear.
Does anyone know if I am able to have view where the 2nd guys information is added to the view for 3rd guy (or similar). its really annoying me.
Thanks!Are the columns that the second guys is required to fill in consistent? If so, than a static view with just these columns in might be the answer.
Steven Andrews
SharePoint Business Analyst: LiveNation Entertainment
Blog: baron72.wordpress.com
Twitter: Follow @backpackerd00d
My Wiki Articles:
CodePlex Corner Series
Please remember to mark your question as "answered" if this solves (or helps) your problem. -
Hello Everyone,
I am looking for infomation on CRM Workflow and how to use to standard workflow for specific business case.I have gone through help.sap.com to find out some information, I got idea...but looking for more information how to use to workflow.
Any information or documentation would be great help.
Thanks,
AjayHi Ajay,
I am also in ur situation.. to know about CRM Workflow... If i got any information about workflow(CRM).. i will share with u... I am expecting from ur help also... id : [email protected]. Can u share about the information in help.sap.com..
thanks in advance
sk -
Attribute & workflow information missing - serious problem
Hi
I have a peculiar problem......
I have been using the repository for a few days now & all of a sudden i realised that the attribute names that i created in Data Manager have disappeared, rest of the attribute information are intact. The attributes are without any name & description. Similarly i was working on the workflow & later even their names & description got disappeared, though the workflows & other details are intact. My server is in a secure area & i am sure nobody has tampered with the database. The other repositories which i have not been using for the last few days are good.
Has anybody faced this problem before & how can i trace what has gone wrong & how to get back the deleted information? Any suggestions.
ArvindHi,
could you please stop the repository and Load it with "Update Indizes" again?
This should solve the problem.
Regards,
Florens -
Hi,
I have the following scenario:
- A user gets added to a group using workflowSaveChangeAttributeRequest function sent to the OAM server using IdentityXML.
- The workflow is initiated by a third-party person in a page that does not have the credentials of the user to be added to the group.
- Therefore, I have created a hardcoded account that has access to initiate the workflow, say admin/password.
- When the workflow is initiated (onclick of a button in my custom page) admin/password get inserted in the identityXML on the server side, and user (e.g. user1) gets added to the group (e.g. group1).
The problem:
- When I check the workflow logs using the Monitor Requests tool of OAM I can't track which user was added to the group. Only which user initiated it which is of no use to me.
Possible solutions:
- I tried setting the workflow initiation permissions to "anyone", and tried initiating the workflow (through IdentityXML) with no credentials at all. It didn't work.
- I tried finding a field or an option in OAM to save some information with the request. I didn't find anything.
Does anyone have an idea about how to solve this?I think there is no need to complicate it you can just enable the approvals through email so whatever the mobile used the manager will receive an email and he can take action through email.
-
How to build a Report from workflow information
Hi Friends,
I want to create a sales order approval and rejection steps using workflow. For this I have created User Decision Step where I have included approval and rejection decisions. And it is working fine. But the thing is that user wants a report for later analyis by giving sales order info. in selection and in output he need SO number,creation date, approver name, how many times he rejected, rejection date, approval date etc. How to achieve this? Is there any standard report programs available to get this type of info? kindly assist me.
Rewarded...
Thanks in advanace,
Steve.Hi Stephen!
Take a look this example I've developed a report like this.
REPORT ZSICREP001 .
INCLUDE ZSICREP001I.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: S_UNAME LIKE USR02-BNAME OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK B1.
INITIALIZATION.
PERFORM zf_init_alv USING p_var.
START-OF-SELECTION.
PERFORM busca_nome USING S_UNAME CHANGING LC_NAME.
CONCATENATE 'Tarefas de:' LC_NAME INTO TITULO SEPARATED BY SPACE.
PERFORM: busca_dados,
prepara_dados,
zf_monta_tabela_alv,
zf_monta_layout,
ZF_SORT_SUBTOTAL,
zf_executa_funcao_alv TABLES t_alv USING ' '.
END-OF-SELECTION.
Executa a busca dos dados no BD.
Form Busca_Dados.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 15
text = 'Buscando dados ...'.
Busca o histório das tarefas executadas pelo usuário informado.
Select WI_ID
METHOD
METH_EDATE
METH_ETIME
FROM SWWLOGHIST
INTO TABLE T_SWWLOGHIST
WHERE METHOD EQ 'SWW_WI_STATUS_TO_COMPLETED' AND
METH_USER EQ S_UNAME.
IF SY-SUBRC EQ 0.
BUSCA O LOG DE CRIAÇÃO DA TAREFA
Select WI_ID
METHOD
METH_EDATE
METH_ETIME
FROM SWWLOGHIST
INTO TABLE T_SWWLOGHIST_CRIA
FOR ALL ENTRIES IN T_SWWLOGHIST
WHERE WI_ID EQ T_SWWLOGHIST-WI_ID AND
METHOD EQ 'SWW_WW_CREATE' AND
METH_USER EQ 'WF-BATCH'.
ENDIF.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 35
text = 'Buscando dados ...'.
Busca as tarefas aguardando execução do usuário.
CONCATENATE 'US' S_UNAME INTO S_ORG_OBJ.
Select WI_ID
FROM SWWORGTASK
INTO TABLE T_SWWORGTASK
WHERE ORG_OBJ EQ S_ORG_OBJ.
Para cada tarefa aguardando execução, busca o evento de criação da
tarefa e appenda na tabela de histórico
IF SY-SUBRC EQ 0.
SORT T_SWWORGTASK BY WI_ID.
Select WI_ID
METHOD
METH_EDATE
METH_ETIME
FROM SWWLOGHIST
APPENDING TABLE T_SWWLOGHIST_CRIA
FOR ALL ENTRIES IN T_SWWORGTASK
WHERE WI_ID EQ T_SWWORGTASK-WI_ID AND
METHOD EQ 'SWW_WW_CREATE' AND
METH_USER EQ 'WF-BATCH'. .
ENDIF.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 45
text = 'Buscando dados ...'.
Endform.
PREPARA OS DADOS
FORM prepara_dados.
DATA: lc_hoje like SWWLOGHIST-METH_EDATE,
lc_index type i.
LC_HOJE = SY-DATUM.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 50
text = 'Preparando dados ...'.
SORT T_SWWLOGHIST BY WI_ID METH_EDATE METH_ETIME.
SORT T_SWWLOGHIST_CRIA BY WI_ID.
LOOP AT T_SWWLOGHIST_CRIA.
PERFORM BUSCA_REQUISICAO USING T_SWWLOGHIST_CRIA-WI_ID
CHANGING l_NUM_REQ l_WIPAI.
Se o número da req. vier em branco é porque o workitem nao é do SIC.
IF NOT l_NUM_REQ IS INITIAL.
BUSCA O EVENTO DE EXECUCAO DA TAREFA
READ TABLE T_SWWLOGHIST WITH KEY WI_ID = T_SWWLOGHIST_CRIA-WI_ID
BINARY SEARCH.
IF SY-SUBRC EQ 0.
l_DTEXECTASK = T_SWWLOGHIST-METH_EDATE.
l_HREXECTASK = T_SWWLOGHIST-METH_ETIME.
ELSE.
l_DTEXECTASK = ''.
l_HREXECTASK = ''.
ENDIF.
T_ALV-WORK_ITEM = T_SWWLOGHIST_CRIA-WI_ID.
T_ALV-EXEC_TAREFA = l_DTEXECTASK.
T_ALV-HORA_EXEC_TAREFA = l_HREXECTASK.
T_ALV-CRIA_TAREFA = T_SWWLOGHIST_CRIA-METH_EDATE.
T_ALV-HORA_CRIA_TAREFA = T_SWWLOGHIST_CRIA-METH_ETIME.
T_ALV-REQUISICAO = l_NUM_REQ.
T_ALV-WIPAI = l_WIPAI.
BUSCA O TIPO DO FLUXO
SELECT SINGLE FLUXO
FROM ZSICREQUISICAO
INTO T_ALV-FLUXO
WHERE BANFN EQ T_ALV-REQUISICAO.
APPEND T_ALV.
ENDIF.
ENDLOOP.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 75
text = 'Preparando dados ...'.
SORT T_ALV BY REQUISICAO.
LOOP AT T_ALV.
AT NEW REQUISICAO.
BUSCA O TIPO DO FLUXO
SELECT SINGLE FLUXO
FROM ZSICREQUISICAO
INTO T_ALV-FLUXO
WHERE BANFN EQ T_ALV-REQUISICAO.
PERFORM BUSCA_LOG USING T_ALV-REQUISICAO
T_ALV-FLUXO
CHANGING T_LOG.
ENDAT.
CLEAR: T_ALV-ICONE.
BUSCA O LOG DE CRIACAO DO WORKITEM
READ TABLE T_LOG WITH KEY WORKITEM = T_ALV-WORK_ITEM.
IF SY-SUBRC EQ 0.
T_ALV-TEXTO_LOG_CRIA = T_LOG-TEXTO_LOG.
ELSE.
T_ALV-TEXTO_LOG_CRIA = ''.
ENDIF.
BUSCA O LOG DE EXECUÇÃO DO WORKITEM
IF SY-SUBRC EQ 0.
lc_index = SY-TABIX.
lc_index = lc_index + 1.
READ TABLE T_LOG INDEX lc_index.
IF SY-SUBRC EQ 0.
T_ALV-TEXTO_LOG_EXEC = T_LOG-TEXTO_LOG.
ELSE.
T_ALV-TEXTO_LOG_EXEC = ''.
ENDIF.
ENDIF.
Calcula o tempo que a tarefa ficou parada
IF NOT T_ALV-EXEC_TAREFA = ''.
T_ALV-DIAS = T_ALV-EXEC_TAREFA - T_ALV-CRIA_TAREFA.
ELSE.
T_ALV-DIAS = LC_HOJE - T_ALV-CRIA_TAREFA.
WRITE icon_red_light AS ICON TO t_alv-icone.
ENDIF.
MODIFY T_ALV.
ENDLOOP.
ENDFORM.
BUSCA A REQUISIÇÀO ATRAVES DO WORKITEM.
FORM BUSCA_REQUISICAO USING l_WI CHANGING NUMREC WI_PAI.
DATA: LC_NUMREC LIKE SWW_CONTOB-OBJKEY.
CLEAR: l_SWR_WIHDR.
BUSCA O WORKITEM PAI.
CALL FUNCTION 'SAP_WAPI_GET_HEADER'
EXPORTING
workitem_id = l_WI
IMPORTING
WORKITEM_ATTRIBUTES = l_SWR_WIHDR.
BUSCA O NUMERO DA REQUISICAO.
SELECT SINGLE OBJKEY
FROM SWW_CONTOB
INTO LC_NUMREC
WHERE WI_ID EQ l_SWR_WIHDR-WI_CHCKWI AND
ELEMENT EQ 'REQUISITIONHEADER' AND
OBJTYPE EQ 'BUS2105'.
IF SY-SUBRC EQ 0.
NUMREC = LC_NUMREC.
WI_PAI = l_SWR_WIHDR-WI_CHCKWI.
ELSE.
NUMREC = ''.
WI_PAI = ''.
ENDIF.
ENDFORM.
Monta a estrutura do relatório
FORM ZF_MONTA_TABELA_ALV.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 80
text = 'Montando a estrutura do relatório...'.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'ICONE'.
t_fieldcat-tabname = 'T_ALV'.
t_fieldcat-reptext_ddic = 'Status'.
t_fieldcat-inttype = 'C'.
t_fieldcat-no_out = 'X'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'REQUISICAO'.
t_fieldcat-tabname = 'T_ALV'.
t_fieldcat-reptext_ddic = 'Requisição'.
t_fieldcat-inttype = 'C'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'CRIA_TAREFA'.
t_fieldcat-tabname = 'T_ALV'.
t_fieldcat-reptext_ddic = 'Dt.Rec.Tarefa'.
t_fieldcat-inttype = 'D'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'HORA_CRIA_TAREFA'.
t_fieldcat-tabname = 'T_ALV'.
t_fieldcat-reptext_ddic = 'Hr.Rec.Tarefa'.
t_fieldcat-inttype = 'C'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'TEXTO_LOG_CRIA'.
t_fieldcat-tabname = 'T_ALV'.
t_fieldcat-reptext_ddic = 'Log do recebimento da tarefa'.
t_fieldcat-inttype = 'C'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'EXEC_TAREFA'.
t_fieldcat-tabname = 'T_ALV'.
t_fieldcat-reptext_ddic = 'Dt.Exec.Tarefa'.
t_fieldcat-inttype = 'D'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'HORA_EXEC_TAREFA'.
t_fieldcat-tabname = 'T_ALV'.
t_fieldcat-reptext_ddic = 'Hr.Exec.Tarefa'.
t_fieldcat-inttype = 'C'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'TEXTO_LOG_EXEC'.
t_fieldcat-tabname = 'T_ALV'.
t_fieldcat-reptext_ddic = 'Log da execução da tarefa'.
t_fieldcat-inttype = 'C'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'DIAS'.
t_fieldcat-tabname = 'T_ALV'.
t_fieldcat-reptext_ddic = 'Dias'.
t_fieldcat-inttype = 'I'.
t_fieldcat-do_sum = 'X'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'WORK_ITEM'.
t_fieldcat-tabname = 'T_ALV'.
t_fieldcat-reptext_ddic = 'Work Item'.
t_fieldcat-inttype = 'C'.
t_fieldcat-no_out = 'X'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'WIPAI'.
t_fieldcat-tabname = 'T_ALV'.
t_fieldcat-reptext_ddic = 'WI Pai.'.
t_fieldcat-inttype = 'C'.
t_fieldcat-no_out = 'X'.
APPEND t_fieldcat.
ENDFORM.
Form zf_sort_subtotal
Classificação e item de subtotalização
FORM ZF_SORT_SUBTOTAL.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 90
text = 'Montando a estrutura do relatório...'.
CLEAR t_sort.
t_sort-spos = 1.
t_sort-fieldname = 'REQUISICAO'.
t_sort-tabname = 'T_ALV'.
t_sort-up = 'X'.
t_sort-subtot = 'X'.
append t_sort.
CLEAR t_sort.
t_sort-spos = 2.
t_sort-fieldname = 'CRIA_TAREFA'.
t_sort-tabname = 'T_ALV'.
t_sort-up = 'X'.
append t_sort.
ENDFORM.
BUSCA A LINHA DO LOG REFERENTE AO WORKITEM
FORM BUSCA_LOG USING NUM_REQ TIPO_WFLOW CHANGING LOG STRUCTURE T_LOG.
DATA: lh_wis like SWWWIHEAD occurs 0 with header line,
lc_wiatual type TP_DADOSWI,
lc_noant like ZSICDESETAPA-NODE_ID,
lc_chckwi like swwwihead-wi_chckwi,
lh_itemlist like SWWWIHEAD occurs 0 with header line,
lc_wid like swwwihead-wi_id,
lc_objkey like SWW_CONTOB-OBJKEY.
BUSCA TODAS AS INSTANCIAS DO FLUXO
lc_objkey = NUM_REQ.
call function 'SWI_WORKITEMS_OF_OBJECT_GET'
exporting
objtype = 'BUS2105'
objkey = lc_objkey
tables
itemlist = lh_itemlist.
Elimina os Workitens que não sao de diálogo e não são de criação do
*fluxo.
delete lh_itemlist where not wi_chckwi is initial or wi_type <> 'F'.
loop at lh_itemlist.
Refresh: lh_wis.
CLEAR: lc_noant.
lc_wid = lh_itemlist-wi_id.
busca todos os workitems dependentes do WI pai
call function 'SWI_GET_DEPENDENT_WORKITEMS'
exporting
wi_id = lc_wid
tables
dependent_wis = lh_wis.
elimina WI que não são de diálogo
delete lh_wis where wi_type <> 'W'.
Verifica se existe alguma tarefa para o usuário informado se não
existir, né há necessidade de entrar no loop.
READ TABLE lh_wis WITH KEY WI_AAGENT = S_UNAME.
CHECK SY-SUBRC EQ 0.
Loop at lh_wis.
busca nó
search lh_wis-wi_creator for lh_wis-WI_CHCKWI.
lc_wiatual-node_id = lh_wis-wi_creator+sy-fdpos(22).
busca o SUBWORKFLOW que a tarefa pertence.
select single wi_rh_task
into lc_wiatual-task
from swwwihead
where wi_id = lh_wis-WI_CHCKWI.
Monta o log
IF S_UNAME EQ lc_wiatual-agent.
LOG-WORKITEM = lh_wis-WI_ID.
PERFORM MONTA_LOG USING TIPO_WFLOW
lc_wiatual-task
lc_wiatual-node_id
lc_noant
lc_wiatual-agent
lh_wis-WI_AAGENT
CHANGING LOG-TEXTO_LOG.
APPEND LOG TO T_LOG.
Busca o Agente
lc_wiatual-agent = lh_wis-WI_AAGENT.
lc_noant = lc_wiatual-node_id.
endloop.
Endloop.
ENDFORM.
MONTA O TEXTO DO LOG.
FORM MONTA_LOG USING TIPO_WF TAREFA NODE NODE_ANT AGENT AGENT_DEST
CHANGING TEXTO_LOG.
Data: lc_DESETAPA LIKE ZSICDESETAPA,
lc_LEN TYPE I.
BUSCA O TEXTO DO LOG.
SELECT * UP TO 1 ROWS
FROM ZSICDESETAPA
INTO lc_DESETAPA
WHERE TASK EQ TAREFA AND
NODE_ID EQ NODE AND
FLUXO EQ TIPO_WF.
ENDSELECT.
SE FOR ETAPA RECURSIVA
IF lc_DESETAPA-RECURSIVA = 'X'.
SELECT SINGLE LOG
INTO TEXTO_LOG
FROM ZSICETAPA_RECUR
WHERE TASK = TAREFA AND
NODE_ID = NODE AND
FLUXO = TIPO_WF AND
NODE_IDPAI = NODE_ANT.
ELSE.
TEXTO_LOG = lc_DESETAPA-LOG.
ENDIF.
IF NOT TEXTO_LOG IS INITIAL.
Formata Mensagem DO USUARIO ORIGEM
PERFORM busca_nome USING AGENT CHANGING LC_NAME.
lc_LEN = STRLEN( lc_NAME ).
IF NOT lc_LEN IS INITIAL.
REPLACE 'V1' LENGTH lc_LEN with lc_name(lc_LEN)
INTO TEXTO_LOG.
ELSE.
REPLACE 'V1' LENGTH 2 WITH SPACE INTO TEXTO_LOG.
ENDIF.
Formata Mensagem DO USUARIO DESTINO
PERFORM busca_nome USING AGENT_DEST CHANGING LC_NAME.
lc_LEN = STRLEN( lc_NAME ).
IF NOT lc_LEN IS INITIAL.
REPLACE 'V2' LENGTH lc_LEN with lc_name(lc_LEN)
INTO TEXTO_LOG.
ELSE.
REPLACE 'V2' LENGTH 2 WITH SPACE INTO TEXTO_LOG.
ENDIF.
ELSE.
TEXTO_LOG = ''.
ENDIF.
ENDFORM.
BUSCA O NOME DO USUÁRIO
form busca_nome using p_usrid CHANGING p_name.
data ln_pernr like pa0105-pernr.
check not p_usrid is initial.
Busca o no.pessoal do usuário
select pernr into ln_pernr up to 1 rows
from pa0105
where usrty eq '0001'
and usrid eq p_usrid.
endselect.
if sy-subrc = 0.
Busca o nome completo do usuário
select ename into p_name up to 1 rows
from pa0001
where pernr eq ln_pernr.
endselect.
translate p_name to upper case.
endif.
endform.
*& Form zf_monta_layout
text
--> p1 text
<-- p2 text
form zf_monta_layout.
Preenchendo algumas opções de impressão (Não é obrigatório)
v_layout-expand_all = 'X'. "Abrir subitens
v_layout-colwidth_optimize = 'X'. "Largura melhor possível da coluna
v_layout-edit = 'X'. "Permitir a edição
v_layout-zebra = 'X'. "Zebrar o relatório
v_layout-info_fieldname = 'COLOR'. "Cor da linha
v_layout-no_totalline = 'X'. "Não imprime a linha de Total.
v_layout-totals_before_items = 'X'. "Imprime o total antes do item
endform. " zf_monta_layout
Best Regards
Luciano Barreto -
Workflow Information System (WIS)
Hi all,
Recently i came to know about WIS.
When i researched, i found that it is a workflow reporting tool for LIS (Logistics) system only.
(1) Then what about workflow reporting for non-LIS system ?
(2) From SDN, I discovered that it is going to be obselete soon. Then what is the alternative for the same ?
Please answer my qus.
(3) I will highly appreciate if you can give more practical examples of the WIS reporting.
In SDN, till now no clear cut explanation is posted for WIS.
Let's make this thread count so that others can leverage from it.
Regards,
DebiAny body who can answer my question ?
Thanks,
Debi -
Library Storage and backup, really need equipment and workflow information.
I have about 700 Gigs of files on three external hard drives, which are backed up to three more. My copy of Aperture arrived today, and, after reading the included booklet, I still don't understand the basic storage, backup and workflow structure of the program. Questions:
Does your library have to be stored on one disk, or can it be spread over several in a JBOD setup, or will I need a raid 0 or 5? I need to plan for a Library that will hold TBs if they have to be in one place. The manual says that the program works better with the library on an internal HD - will an external SATA do just as well? $499 for the program and $12,000 for an x-serve RAID? Seriously, can you keep all of your photos in one place?
Backup (vault): the manual mentions that you may have to move the vault when it exceeds the size of your external disk. Can it be spread out over several disks? Will it need a RAID as well?
I'm using C1Pro (currently in disfavor), PS CS2 (gets better every version) but was hoping for a better workflow and, yes, a way to organize my entire library and speed my workflow. Aperture looks great. Having said that, experience tells me that I will need PS a lot, and may want to do conversions outside of aperture on a regular basis. So, if I import the RAW files directly into Aperture, can I find them in the finder, or export the original RAW? HOW PLEASE? It doesn't make a lot of sense to examine them in Bridge before I decide which ones to Bring in to Aperture. Do I just have to make duplicates to HD or DVD of the original RAW files?
Is there a more detailed explanation of file handling. I have read the booklet, looked at help, checked the articles at Apple Support and read every thread in this forum. Did I just stupidly overlook something obvious?
I know this is a brand new program, but for a professional photographer's tool, someone should have anticipated these questions. Egads!, I just know it's there but I can't find it. I would really appreciate any help.Does your library have to be stored on one disk, or
can it be spread over several in a JBOD setup, or
will I need a raid 0 or 5?
I believe the library must be on one LOGICAL drive. This could be one physical drive, a JBOD configuration or a RAID 5. In anycase, it has to be one logical drive.
I need to plan for a
Library that will hold TBs if they have to be in one
place.
Since you can specify the location of the library, you can store multiple libraries on multiple internal drives and switch between them. Hopefully, in future versions, Aperture will seamlessly support multiple libraries on different (and networked!) drives.
Backup (vault): the manual mentions that you may have
to move the vault when it exceeds the size of your
external disk. Can it be spread out over several
disks? Will it need a RAID as well?
Only if it is also a JBOD or a RAID configuration. You cannot span multiple logical drives.
So, if I import the
RAW files directly into Aperture, can I find them in
the finder, or export the original RAW? HOW PLEASE?
Finding them in the Finder is not easy. Doable but not easy, as it is well hidden inside a package. Aperture actively discourages you from doing this. Can you imagine the havoc if someone deleted a raw file from the finder? Aperture (and all the xml files it creates) would be looking for missing files and this would lead to corrupted projects.
To export a RAW file out of the library:
File -> Export Master . This menu option will export the original raw file out of the library. Not sure why you would want to do that. If you want to edit it in Photoshop, select the image in Aperture and select Images -> Open with external editor. This will transfer the image into photoshop (assuming you have photoshop set up as your external editor). When you're done editing, save the image (just save, not save as). Close the image in photoshop and Aperture will automatically pickup the change.
Do I just have to make duplicates to HD or
DVD of the original RAW files?
You export the versions into a directory. Then you burn that directory and then delete it. So yes, it would appear that you are duplicating images for the purpose of burning. So you must have at least as much free space on your hard disk as the empty CD/DVD.
G5 Quad, 30" ACD driven by a Quadro Mac OS X (10.4.3) -
How to tell what version of a document the workflow ran against?
I am using the OOB Approval workflow and in the workflow information I see a Document field, but that links latest version of the document. How can I tell what version of the document the workflow actually ran against?
Hi,
Set a variable in the workflow to be equal to the version of the document.
Now you can use this variable to update a column in the document library with the version and date the workflow was ran. Next time the workflow runs, update this column with next run details.
OR write this variable to workflow history. Hope it helps.
Regards, Kapil ***Please mark answer as Helpful or Answered after consideration*** -
Can we change the name of reassign button in sharepoint 2010 approval workflow?
can we change the name of reassign button in sharepoint 2010 approval workflow?
Shazil AliYes, we can change it. Steps are as follows: 1. Create the workflow in SharePoint Designer 2010 2. Use Start Approval Process action 3. Write your logic and all setting as per you requirement and then publish the workflow once. 4. After this, click on
the workflow name and there you will see the sections as Workflow Information, Customization, Settings, Start Options, Forms. Here you will see a form under Forms section with a name of Approval_x00....... with a type "Task". Click on this form. This form
is an Infopath form that opens up when a task is to be edited (Task Form). This form will open up in Infopath (provided you have Infopath installed on your system) It may ask you the crendentials for security. 5. The task form will open up in Infopath for
editing. Click on the Reasign button and in the top left corner in the ribbon section is the field (Label) having text as "Reassign Task". Change this and then save and publish the form.Publish the workflow once again. -
Workflow intiator changed when modify item
I have SharePoint 2010 List customized using InfoPath and workflow running using Nintex WF 2010 , the form is two parts , one is edited by user and second part is visible and can be edited only by admin, the weird behavior I have and occurs
randomly with no clear cause for it, when user submitted the form and workflow is started the Initiator= User , but when form is open and edit the Initiator is changed to admin user , what can cause Initiator to be changed in workflow
information , and does anyone got same issue before , its really frustrating.
P.S: again the behavior does not happen for all items it happens randomly and I cannot repro right away
BR
Hi,
Please see the below thread for Nintex workflow not working in case of system account.
https://social.technet.microsoft.com/Forums/en-US/c48a0ec7-3731-4394-8921-ff6d64a02dca/nintex-workflow-not-getting-started-from-system-account
Hope this helps you.
Regards
Soni K -
I'm new to workflow and I'm trying to figure out the best way to construct my app.
First, what is the best method of generating the item key?
Second, when creating a new process how are the attribute values set? CreateProcess doesn't have any method of doing this. Would I need to use SetItemAttr? How would it react if the item didn't yet exist (as createProcess would not have been called)?
Third, what is the best practice for storing data? One could conceivably store the data in tables of their own and not use the attributes at all. They could also store it in both their own tables and the attributes (which seems redundant to me). They could also just use the attributes for storing data (as the examples in the Workflow guide seem to do).
If I only store the data in the attributes, how would I go about presenting it to my users on various web pages?
Perhaps the solution is to store the data in an initial table, load it into attributes during the first function, only access it in the attributes until a final decision is made, at which point the last function would take the data in the attributes and store it in the final table?
Thanks,
Tom1) Usually the item key is derived from the primary key of the application object being handled by the workflow. For example, in a requisition workflow, a good item key would be the requisition number. The item key does not have to be meaningful, though; from a workflow point of view the main point is that the item key and item type combination must be unique.
2) Yes, SetItemAttr is the right way to set item attributes, and you're correct that CreateProcess must be called first. The best order in which to call the APIs is:
CreateProcess
SetItemUserKey
SetItemOwner
SetItemAttr...
StartProcess
CreateProcess and StartProcess are required; the Set... APIs are optional, if you want to set any of those values. If you do not need to set anything, you can call LaunchProcess instead, which combines CreateProcess and StartProcess in one wrapper; but note that LaunchProcess does not give you any opportunity to set any values in between creating and starting the process.
3) Item attributes are basically meant to hold the information that the workflow process itself needs to use. There is a trade-off between the convenience of storing global process data in item type attributes and the overhead incurred by loading item type attributes when a process instance is created. So we recommend that you do not use item type attributes as a denormalized data store. Instead, always refer back to the base application to retrieve up-to-date values. Minimizing the number of item type attributes will improve the performance of your workflow process. Also, runtime workflow information is usually purged from the WF tables at some time after the process is complete, so any information that you want to access from your own application should be stored back in your own tables.
We recommend that the following types of information should be defined as item type attributes:
- Information required by notification messages, such as the display format of a currency value
- Information required by function activities, such as values that link back to applications data like a person_ID
- Information maintained by a workflow activity, such as data for activities that identify who to forward information to and from in a loop construct
- Business event messages required by Send or Receive event activities, or event details required by Raise event activities
Maybe you are looking for
-
thx guys.....i have a progress now in LV But now i have new trouble here. Ok i attached my LV file (LV 7.0.1/7.1) and excel form. I just could'nt calculate more than one input value. I want a different result for each value that i enter ... and store
-
IPhone locks up during update/sync
I have synched my prior iPhone for several months so everything was set up fine, but it no longer will allow downloads. Last week, I tried to download the update for iPhone, and it locked up. When I disconnected, the iPhone was ruined, would only acc
-
Requisitioner as WF-BATCH in PO
Hi all we are working in classic scenario (SRM 5.0). shopping carts created from catalogues are going to ECC 5.0 after approval and automatically create PO. Issue is once PO gets created, for 1st line item we are getting Tracking No as shopping cart
-
Printing House Bank details in an Invoice PLD
Dear Experts, On the AR Invoice I would like to print out house bank information in DSC1, the information is there on DSC1 but how do you create a link to the information on DSC1 to the AR invoice to display only the specific row details ? Rgds Edite
-
hp pavilion dv6000 notebook....32 bit operating system... no sound error 1079 no audio devices installed audio service not running took the computer to geek squad they said the only thing i could possibly do is to restore system to its original facto