Reporting on Workflow performance

Hi,
The business is trying to gain an insight in to how long the process is from the time we create a Shopping Cart to the time it is approved. 
Ideally they are looking for the following:
1) Time taken from Shopping Cart Creation > Financial Approval is carried out;
2) Time taken from Financial Approval > Group Procurement Approval;
2) Time taken for the Shopping Cart Creation > Shopping Cart fully approved (both Financial & Group Procurement)
This would enable us to monitor and report on the process and look for process improvements (if we need to).
I have shown them the SWI2_DURA report, but they want a custom report written that is more user-friendly. I've been tasked with analysing whether we can get a report created.
Can you let me know how difficult this would be?
Chers,
John

Hi,
You could create an abap report but my experience is that you will need to read the workflow container (perhaps even several times) (sap_wapi_read_container for instance). The performance will be very poor.
A solution to this can perhaps be to add an activity to the workflowmodel which creates a record with certain fields in a z-table. Then your abap will only need to read the z-table.
Also have a look at programming exits. Each task in the workflowmodel has this tab. You can enter a class which creates the record. It is intended for this purpose. Look for classes cl_swh_workitem_exit* for demo classes from SAP.
regards,
Bert

Similar Messages

  • Siebel & "BIP Report Generation" Workflow and Bookmark Syntax

    IHAC that wants to schedule the generation of a BIP report to run every weeknight and include a list of activities for the next day. We've utilized an OOTB IO and can successfully render the report using Sample XML in MS Word. Additionally, since they are only on 8.1.1, they do not currently have access to the latest scheduling capabilities. Therefore, we're trying to implement a repeating component to call a workflow to generate the report using the 'BIP Report Generation' workflow and the associated objects (from support posting 823360.1).
    Now to the questions:
    One of the parameters for the workflow is a 'Bookmark'. This parameter does not appear to handle various 'Siebel' querying functions like 'Today()' as part of the criteria. Can someone confirm this statement?
    Currently, I can imagine one high-level possible workarounds. This would entail a revised WF and that includes a prior step to generate the 'Bookmark' by retrieving a string representation of tomorrow's date and concatenating it with the rest of the criteria.
    Next question:
    Does anyone have any other possible alternatives? Maybe a calculated field in the BC/IC for 'Today() + 1' - but this could have performance implications.
    Thanks in advance for any help.

    Suggestions/comments?
    Bump.

  • SharePoint foundation 2010 workflow performance issue

    I need clarification for the below issue.
    I have designed state machine approval workflow through VS2010.
    It was worked fine for 3 months and now it is taking long time for each level of execution.
    I have checked the running workflow instances in site, it is around 1800 instances for each sub site.
    Application: SharePoint Foundation 2010                                                                              
    Farm configuration
    Web server
    Application Server
    Database Server
    Processor
    Intel® Xeon® CPU E5-26670 0 @2.90GHz 2.89GHz
    Intel® Xeon® CPU E5-26670 0 @2.90GHz 2.89GHz
    Intel® Xeon® CPU E5-26670 0 @2.90GHz 2.89GHz
    RAM
    8 GB
    8 GB
    14 GB
    OS
    Windows Server 2008 R2 SP 1
    Windows Server 2008 R2 SP 1
    Windows Server 2008 R2 SP 1
    Anandhan.S Remember to 'mark or propose as answer' or 'vote as helpful' as appropriate.

    I have done the below configuration in production servers. Still the problem exists.
    System took around 13 hours+ to proceed to next approver. Suggest some ideas to increase workflow performance.
    Decreased DB server memory configuration
    (Database server)
    Maximum memory in SQL server reduced from
    10GB to 8GB.
    Increased Workflow throttle configurations
    (Application & Web server)
    PS C:\Windows\system32> stsadm -o getproperty -pn
    workflow-eventdelivery-throttle <Property Exist="Yes" Value="150" />
    (Default value is 15)
    PS C:\Windows\system32> stsadm -o getproperty -pn
    workitem-eventdelivery-batchsize <Property Exist="Yes" Value="150" />
    (Default value is 100)
    PS C:\Windows\system32> stsadm -o getproperty -pn
    workflow-eventdelivery-timeout <Property Exist="Yes" Value="10" />
    (Default value is 5)
    PS C:\Windows\system32> stsadm -o getproperty -pn
    job-workflow -url http://myweb:1333 <Property Exist="Yes" Value="Every 10 minutes between 0 and 30" />
    (Default - Property Exists = “No”)
    Site collection analytics
    Sub-Site1: Total running workflow instances: 302
    Sub-Site 2: Total running workflow instances: 58
    Sub-Site 3: Total running workflow instances: 1234
    Sub-Site 4: Total running workflow instances: 2
    Sub-Site 5: Total running workflow instances: 2306
    Sub-Site 6: Total running workflow instances: 512
    Sub-Site 7: Total running workflow instances: 1631
    Sub-Site 8: Total running workflow instances: 7
    Sub-Site 9: Total running workflow instances: 38
    Sum of workflow instances from all sites:
    6090….
    Farm configuration
    Web server
    Application Server
    Database Server
    Processor
    Intel® Xeon® CPU E5-26670 0 @2.90GHz 2.89GHz
    Intel® Xeon® CPU E5-26670 0 @2.90GHz 2.89GHz
    Intel® Xeon® CPU E5-26670 0 @2.90GHz 2.89GHz
    RAM
    8 GB
    8 GB
    14 GB
    OS
    Windows Server 2008 R2 SP 1
    Windows Server 2008 R2 SP 1
    Windows Server 2008 R2 SP 1
    Anandhan.S Remember to 'mark or propose as answer' or 'vote as helpful' as appropriate.

  • Report on daily performance

    hi friends,
    i want to make report on daily performance of plant in which there are different columns like 1. plan/ day,
                                    2. monthly plan
                                    3. days production
                                    4. cumulative production .
    now from where i get monthly plan or what logic i use for this.
    which tables i use for this report.
    with regards.
    B.S

    Hi,
    Check the Functional Spec given.
    Regards,
    Wajid Hussain P.

  • Upgrade from 11i to R12 - Custom Forms,Reports and Workflows

    Dear Community Friends,
    We are planning for upgrade from oracle apps 11.5.10.2 to R12.
    We have custom Forms,Form Libraries,Reports and Workflows.
    Kindly provide me for approach on how to migrate Custom form libraries,reports and Workflows.
    I beleive, this thread will exists as one shot point for custom forms,reports,workflow upgradation from 11i to r12 with detailed steps.
    I know that many links exists here in the forum for all the above objects mentioned,but still from all those i am able to get a clear picture for oracle forms but not for custom form libraries ,reports and workflows.
    Also,this post will provide a low level,practical picture of the steps for those who are in line with this.
    Links i have read for all these in our forum are:
    For Custom Forms,
    Re: Planning to upgrade from 11i to R12
    Re: Custom forms: After upgrading 11i to R12
    ofcourse,'n' number of links exists providing metalink notes also.
    Hussain,Helios and some others also has given many updates regd this.
    For custom workflow upgradation,
    Upgrade Workflow 11i to R12
    Workflow Upgrade
    Workflow Upgrade
    For reports,links mentioned the below metalink notes:
    Do Not Compile EBS R12 Reports Using rwconverter.sh or Reports Builder from IDS 10gR2 [ID 786794.1]
    Using the OracleAS 10.1.2 Forms and Reports Builders with Oracle Applications Release 12 [ID 444248.1]
    Per my understanding, after searching in many threads,i am here by summarising the practical low level steps for custom forms migration
    Please correct me,if i am wrong.
    1) Download the Forms(.fmb's) and all PLL's(all the PLL from resource folder in AU_TOP) into a Local Machine Folder
    2) Open the forms using Forms Developer 10G and connect to DB
    3) Compile by clicking compilein Forms Developer and then save it.
    4) Upload the Saved Forms(.fmb's) into the new R12 server(system) in the respective custom paths(paths similar to 11i Server)
    5) Compile all the forms using the command like below(example command is shown below or f60 gen commands or frmcmp.sh utility) in the respective custom form paths,
    this will generate the .fmx's.
    frmcmp_batch module=FORMNAME.fmb userid=apps/apps output_file=FORMNAME.fmx compile_all=yes
    Link for compiling forms: https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_afrLoop=359210362972527&type=DOCUMENT&id=1085928.1&displayIndex=3&_afrWindowMode=0&_adf.ctrl-state=c348xvwbg_98
    6) Open the form and check in R12 instance
    As per my understanding for custom form libraries,we can just copy paste the PLL's from 11i server to R12 server (Please correct me,if i am wrong)
    Can anyone please help me out in custom reports and custom workflows.Sorry that,i could not get a practical and clear picture for reports and also for workflow even after referring many threads and metalink notes mentioned.
    As for reports,some says that Developer Suite 10g can be used and .rdf can be used in R12.
    Some says that reports should be converted to XML published as reports does not exists in R12.
    So,i am not clear on this.
    Thanks,
    Ganesh
    [email protected]

    Per my understanding, after searching in many threads,i am here by summarising the practical low level steps for custom forms migration
    Please correct me,if i am wrong.
    1) Download the Forms(.fmb's) and all PLL's(all the PLL from resource folder in AU_TOP) into a Local Machine Folder
    2) Open the forms using Forms Developer 10G and connect to DB
    3) Compile by clicking compilein Forms Developer and then save it.
    4) Upload the Saved Forms(.fmb's) into the new R12 server(system) in the respective custom paths(paths similar to 11i Server)
    5) Compile all the forms using the command like below(example command is shown below or f60 gen commands or frmcmp.sh utility) in the respective custom form paths,
    this will generate the .fmx's.
    frmcmp_batch module=FORMNAME.fmb userid=apps/apps output_file=FORMNAME.fmx compile_all=yes
    Link for compiling forms: https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_afrLoop=359210362972527&type=DOCUMENT&id=1085928.1&displayIndex=3&_afrWindowMode=0&_adf.ctrl-state=c348xvwbg_98
    6) Open the form and check in R12 instance
    As per my understanding for custom form libraries,we can just copy paste the PLL's from 11i server to R12 server (Please correct me,if i am wrong)You are right, and the steps mentioned above should be sufficient.
    Can anyone please help me out in custom reports and custom workflows.Sorry that,i could not get a practical and clear picture for reports and also for workflow even after referring many threads and metalink notes mentioned.
    As for reports,some says that Developer Suite 10g can be used and .rdf can be used in R12.
    Some says that reports should be converted to XML published as reports does not exists in R12.
    So,i am not clear on this.You can still use RDF files in R12, and just follow the approach you mentioned above, and you do not have to migrate them to XML publisher (though it is recommended, but this can be done after the upgrade as an enhancement task).
    For custom workflow, you need also to do the same thing, open them using workflow builder and make sure they work in R12 (correct the code if required and save them again in R12 once they work properly).
    Thanks,
    Hussein

  • Workflow performance is getting slow down

    The workflow performance is getting affected due to massive growth in number of records in workflow tables. Due to this users are facing problem in opening and sorting notification. we have to delete or purge this records.
    concurerrent programs like "Approval management Transaction Data Purge" and "Purge Obsolete workflow Run time Data" could not delete the records.
    regards
    Arif
    Edited by: user11309801 on Jun 26, 2010 4:28 AM

    Hi,
    Please mention the application release along with the database version and OS.
    The workflow performance is getting affected due to massive growth in number of records in workflow tables. Due to this users are facing problem in opening and sorting notification. Please see these documents.
    Note: 132254.1 - Speeding up and Purging Workflow
    Note: 277124.1 - FAQ on Purging Oracle Workflow Data
    Note: 337923.1 - A closer examination of the Concurrent Program Purge Obsolete Workflow Runtime Data
    we have to delete or purge this records. concurerrent programs like "Approval management Transaction Data Purge" and "Purge Obsolete workflow Run time Data" could not delete the records. Please post the contents of the log files of those concurrent requests.
    Thanks,
    Hussein

  • How to Report on transactions performed in SRM_MDM catalog (SRM5 MDM2)

    What is the recommended way to do reporting for transactions performed INSIDE SRM_MDM catalog ( SRM5,  MDM2.0)
    Users inside SRM_MDM catalog can search for and select Product ABC and u201Ccompareu201D between 2 or more suppliers.
    Where do I get reporting (Data Manager , syndicator?)
    Is it possible to get reporting of the shopping cart (MDM catalog).  I choose Supplier X at price $12 vs Supplier Y at price $11 for product ABC. Were trying to find out how many times users choose a higher price for  a product instead of a lower price for the same product.
    By the time i transfer the Cart to SRM the selection has already been made and i cannot report on it...
    Option use BI to run report in MDM catalog..?
    cheers
    alex
    Edited by: Alex Waiyaki on Aug 11, 2010 5:24 PM

    Hi Alex.
    This was a really a good initiative of bringing this topic into this forum.Integrating SRM-MDM Catalog to BI for reporting purposes.
    But this functionality is not offered as a standard. Also SAP has to come up with such innovations in the future.
    I can think of some workaround to achieve your functionality(but not 100%)
    You can achieve this by using Shopping List* functionality provided in the SRM-MDM Catalog.
    You can create your own shopping list and before you transfer items to SRM, you can push those data to Shopping List, so that
    you can have an entry of items which you are transferring to SRM. So now you can integrate MDM and BI to bring up an analytical report based on the item which is transferred using Catalog.
    One usecase which is missing here is "How many times a person is shopping the same item" which couldn't be achieved from SRM-MDM Catalog and MDM side. But could achieve it from SRM end. You can write this logic in the BADI when the data is transferred back to SRM.
    Hope it give you a some idea.
    *Shopping List = Favourites
    Thanks
    Bala

  • Report on Workcenter performance, capacity and requirement

    Hi All,
    Could any one tell me how to build a report on workcenter performance and workcenter requirement and Capacity.
    Is there any standard cube available for this? I already checked 0PP_C03 and 0PP_C13. I'm not sure whether these will suffice or not?
    To calculate that I need to know how to calculate -
    Forecast work,
    Dispatched work,
    Undispatched work,
    Backlog Recovery,
    Short fall/Excess,
    Internal Resource and
    External ResourcePerformance(Overdue/Scheduled),
    % of Activities which r in progress & with in schedule time and
    % of Activities which r in progress & for which time is confirmed ( with respect to System status)
    Does anyone already worked on this? Or could you please suggest me how to calculate the above.
    This is an urgent requirement.Your help will be highly appreciated. 
    Thanks in advance,
    isha

    Hi Sirisha,
    I did work in PP functinal area sometime ago.
    We had this kind of requirement,but achieved this through custom development.
    Rightnow, the businesscontent is the good step to understand.
    I suggest you to approach this as follows:
    Take some PP orders, display some of them ..look at the the dates on the order..see if there are confirmations against orders and so on. look at operations and work centers..scrap percentage..so on
    then go to RSA3 in R/3 side and give the PP extractor name, look at the key figure values and PP orders, thats how we can link what is in bus.content and our requirement.
    If you have any questions, you may ask.
    Anil

  • Report for workflow log....

    Hi Experts,
    I have to create a ABAP report for workflow log. which will take workflow number and object key and date range as inputs and gives all the dialog steps , Actual agent , execution date etc.....
    Please help me in doing it......
    Regards,
    Devananda A J

    Hi Dev,
    Check these tables -> SWWWIHEAD, SWW_WI2OBJ & SWWLOGHIST.
    You will get all the relevant data from these tables.
    Thanks,
    Debi

  • Reports and Workflow

    Hi,
    I4m trying to access the table wf_item_attribute_values (oracle workflow table), from a Ref Cursor Query in Oracle Reports, but the following messagem is shown:
    Error 905
    object OWF_MGR.WF_ITEM_ATTRIBUTE_VALUES is invalid
    Could anyone help me?
    Thanks

    Rodrigues, You have to Install and Configure both BI and BPM for availing Reports and Workflow for the EPPM.

  • 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

  • Std report on delivery performance

    Hi Gurus,
    Is there any Standard report to check the delivery performance (Schedule date VS Received date),please advice....
    Regards,
    Kumar

    You can check any of the standard reports like ME2M with the selection variant as "PO where GR exists"

  • Report Engine SDK Performance

    What are the recommended settings for businessobjects xI (version 11.5)
    Are there any tips to improve performance and reliability of the Report Engine SDK?
    It is very slow. We are using a Java client to interact with the dswsbobje libraries.
    Calls to " reportEngine.getDocumentInformation" are not consistently working even from the same program.
    We supply the prompt info parameters to generate the report.
    It works for the first 3 times, then fails a couple of times, and then works again.
    Sometimes a report load in 3 seconds, and other times it loads in 30 seconds or not at all.

    Why not open a case with SAP Support?
    Sincerely,
    Ted Ueda

  • Slow report viewer/rdlc performance in local mode with Single Sign On

    Hi Team,
    We have recently enabled Single Sign On to our application and after that our rdlc reports loading got extremely slow.
    Please find the below configuration that we are using.
    1. Report Viewer 11.0.0.0
    2. running rdlc file in local mode (not using Report Server)
    3. System.IdentityModel.Services 4.0.0.0
    The query behind the reports is returning result in 5-10 sec but report is taking 1-4 min to load (sometimes getting timeout) (as per the complexity of the report).
    We have tried a lot of workaound but nothing worked.
    i saw performance improvement in reports by addding <trust legacyCasModel = "True"   level="Full" /> in config file, But using this we are getting "Dynamic operations can only be performed in homogenous AppDomain" error
    in many pages of our application.
    Without SSO reports are running completely fine.
    We are stucked here and not able to proceed. Is there any issue with the SSO and rdlc in local mode ? Is there any hot fix available for the same ?
    Please help !!!
    Regards,
    Pranav Sharma

    This problem is probably related to :
    [http://blogs.oracle.com/stevenChan/2010/03/ebs_jre_issues_16018.html]
    Oracle problem ID : 1054293.1
    Loginpage / Error in Browser for Export and Attachments after upgrading to Sun JRE 1.6.0_18 [ID 1054293.1]
    Sun bug : 6927268
    ShowDocument calls results in new iexplorer process

  • Report on workflows created by user

    Hi there,
    What is the easiest way to find all workflows created by a particular user?
    I can't seem to find any SAP standard reports to do this - SWIA does not have selection criteria for CREATOR. I know I can run SWIA for a wide date range and then filter the results by CREATOR, but it is very slow since there are thousands of users.
    Thanks

    Hi,
    For this purpose you can use FM SWN_UWL_GET_OUTBOX by whcih you can know the workflow created by a perticular user.
    You need to provide the only import parameter 'USER'. You can also restrict by date using the import parameter 'SINCE_DATE'. Now in the export parameter 'WORKFLOWS_STARTED' you can get the number of workflow which were started by that user,
    Thanks and regards,
    SNJY

Maybe you are looking for

  • How do I make it so iWork docs don't have to reformat from Mac to iOS

    How do I make it so iWork docs don't have to reformat from Mac to iOS? When I edit docs and spreadsheets on my Mac with OSX Mountain Lion with documents in iCloud, they have to be reformatted when I go to open them on my iPad or iPhone.  This is mino

  • I don't have a clue why my Mac shuts down.

    I have been having some difficulty with my iMac. It seems that it has a time delay and the wheel tends to spin for a long time. 1-For instance if I have set "to put the my Mac sleep after 3 hours", and never to put the display to sleep after being in

  • [solved]how to extract recent log entries from a file (based on time)?

    I have a daily log file with hundreds of thousands of entries in the following format.  field1,field2,field3,field4,field5,field6,field7,field8,field9,20110516192001.100 field1,field2,field3,field4,field5,field6,field7,field8,field9,20110516192002.20

  • WPC - highlighting the link of the current page in the link list

    Hi, is there any way to highlight a link in my linklist if it's the link to the page i am currently visiting? That would make it possible for me to customize the link list form and change it into some kind of "tab"-list form where the current tab is

  • Raw images not working

    I just started shooting raw all the time, but I imported them, and aperture says that it is an unsupported file format. I have updates for everything, but it still wont work. Any ideas would be great! Thanks