Skip to Content

Process Observer Discussion

This thread is dedicated to questions and discussions around the Process Observer component that is part of Business Suite.

Process Observer is used in different scenarios, including and prominently with Operational Process Intelligence.

For details on what Process observer is see here.

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

24 Answers

  • Jul 31, 2013 at 06:28 PM

    Hi Christoph,

    For someone coming from an SAP Workflow environment, I am very familiar with the power of events - and raising BOR events is easy. So this looks like it will be a great project.

    Question: In the Workflow World, we know that certain changes do not get reflected immediately, and so we sometimes have to 'refresh the org buffers' (swu_obuf). This comes in very handy in Dev, where you are often clicking on this, saving, clicking on that, saving, etc. Just resync the buffers and all your changes are enabled.

    Are changes made to, say, a Process Definition immediately taken into consideration - or only acted upon the next time you run Process Monitor?

    Thanks,
    Sue

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Sue,


      thanks for your question. A SAP Business Workflow background surely provides a good starting point for working with Process Observer - we're using some Workflow technology, terminology and thinking. And while this is quite helpful, "deep Workflow knowledge" is certainly no pre-requisite for working on Process Observer.

      To answer your question: Process Monitor is purely a tool for visualization and while some data is cached almost all changes of process definitions should be reflected immediately (with the exception of some texts). For good measure you can re-start the process monitor (POC_MONITOR); there are no additional buffers to be reset.

      There is some buffering going on with the process definitions, though. When saving the process definition the active BOR events of all process definitions are determined and put into a separate database table that holds the list of "active" events, i.e. events that are relevant for Process Observer; table BOR Events Relevant for Process Monitoring (POC_V_BOR_EVT) can be viewed in IMG activity Check Process Monitoring Events for Bus. Object Repository. If you change your facade layer content, an update of this table may be necessary - so go into the process definition, change something, save and change back to trigger an update of this buffer. This triggers report POCR_UPDATE_BOR_EVENT, which actually carries out the update - and you could just run this report.


      Finally, you should look into version handling when changing process definitions - significant changes to process definitions may cause unexpected results in your process logs. But I guess this should be discussed separately... I may need to think about a new blog post.

      Best regards,
      Christoph

  • avatar image
    Former Member
    Feb 06, 2014 at 05:21 PM

    Hi Experts,

    I have the following questions about Process Observer :

    1. I modelled a new proces , but when checking the process definition i get multiple errors :

    No BOR event of class assigned to any tak

    I m sure that i assign for every activity a task with bor :

    2. The second question : i m looking for step by step tutorial for pushing the Process Observer log to SAP ESP or/and HANA.

    Thanks in Advance,

    Kind Regards


    activity.png (16.9 kB)
    Add comment
    10|10000 characters needed characters exceeded

    • Hi Moo,

      right, note 1852213 is not released, I'm sorry about that.

      Anyway, the required tables have been added as attachment "Tables_SAP_HBA_ECCFND701.txt" of note 1849168 (as pointed out on the overview page). The list of tables mentioned there is:

      POC_C_KPI_COUNT

      POC_C_KPI_CTG

      POC_C_KPI_CTGD_T

      POC_C_KPI_DURA

      POC_C_PRC_KPI

      POC_C_PRC_KPI_T

      POC_C_PRC_STAT_T

      POC_C_PROCESS

      POC_C_PROCESS_T

      POC_C_PS_BND

      POC_C_PS_T

      POC_D_BA_LOG

      POC_D_BA_SRCSYS

      POC_D_KPI_ACT

      POC_D_KPI_LOG

      POC_D_PRC_BIND

      POC_D_PRC_IN

      POC_D_PRC_STP_IN

      POC_D_PRE_BA

      POC_D_TRACK_THR

      POC_I_BA

      POC_I_BA_T

      POC_I_BA_TYPE_T

      POC_I_BO_TYPE_T

      POC_I_BUS_AREA_T

      POC_I_CBE_T

      The note is more likely to hold the correct and full list of tables since that may (or may not) change over time. For now the list is fine, if you look at this much later, you may want to check the note.

      I'm interested to hear back from you what you did with Process Observer and HANA.

      Best regards,

      Christoph

  • May 28, 2014 at 01:27 AM

    Christoph,

    I have enabled POB on our ECC instance and the simulation events work great. Only took me about 2 hours to run through the end-to-end installation so that was not a problem. Now that I have data in the POB tables showing up in the monitor I have a few questions for clarification:

    1. Where does the correlation between 1 object and another related object take place?
      1. E.g. Sales order = 10001 - BOR object = BUS2032 and BOR Event = CREATED
      2. Delivery = 80001 and relates to 10001 - BOR object = LIKP and BOR Event = CREATED
      3. When POB receives LIKP for 80001 it does not receive any data telling you that it is related to BUS2032 10001
    2. What standard functionality / content is delivered in order to tap in to the POB data to display analytics. All the demos / documents show nice graphics but the standard software delivered with ECC is the raw data with no nice functionality around it. What, in addition to POB, do I need to install in order to leverage the data stored in POB for the purposes of analytical processing?
    3. Does POB store the BOR Event Parameter values anywhere for processing?
      1. E.g. In BUS2032 - I could create a new custom BOR event called DELIVERY_BLOCK_ON and I could pass the value A1 in parameter BLOCK. If the value A1 stored anywhere?
      2. Ultimately we would also have a DELIVERY_BLOCK_OFF event with A1 as a parameter once again which should allow me to close off the duration between BLOCK_ON and BLOCK_OFF for that specific delivery block.
      3. Is this type of functionality possible?

    Thank you

    Kevin

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Kevin,

      seems we're taking turns on you... I'll try this time.

      Process Observer can support these scenarios. In short, the challenge with these scenarios is instrumentation, i.e. you won't have the right events on item basis. And the aforementioned document relationship browser (DRB) won't work on item level (since you'll archive on object level rather than item level). To handle these scenarios, you first need to decide whether you want to monitor on item level or on header level; generally this will be governed by how the system is used - do you work on item or on header level? If you find that you are working on item level, you will model and monitor the item level events - but you have to rely on either change documents or put your own events in the code. Process Observer will then store not only object IDs, but also item IDs if you provide the information (also for the successor). You will find that the relevant tables and interfaces have an "item" field to support that (essentially the ID is not object ID, but object ID + item no.). A third level is (out of the box) not supported (e.g. schedule lines), though.

      A more extended explanation and example can be found in the blog entry Instrumentation for Procure-to-pay process on item level in Process Observer, which is about procurement, but it works in a very similar manner for the order-to-cash process.

      Best regards,

      Christoph

  • avatar image
    Former Member
    Aug 06, 2014 at 03:53 PM

    Hi Christoph,

    I have a problem with Process Observer. It does not recognize the relationship between a sales order and a related delivery although the relationship between these objects is present in the report POC_DRB_BOR_RELSHIP. I can see the delivery in POC_TASK_ORPHAN. There are no problems mentioned in POC_MODEL_CHECK. Have you got an idea where could be the problem?

    SAP ECC 6.0 EHP5

    SAP_BS_FND 7.02 SP09

    Thanks,
    Jens

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Jens,


      something is wrong is going on. This really should work. - The idea to mark the outbound delivery as a start object is quite good, but it really supports my statement that it should really work.

      The view to map previous BOR object from the BOR payload (it's POC_V_MAPPREVBOR.) won't help here, I think. You can find more on that in the Process Observer In-Depth Workshop on page 57. In this case - besides the fact that DRB should really work - the event LIKP-CREATED (thrown when the outbound delivery is created in transaction VL01N) has nothing (helpful) in its BOR container. When you look at the parameters of event "OutboundDelivery.created" in the Business Object Builder (SWO1) for object LIKP, you see: nothing. This event has nothing in the its payload, so there is nothing to map (well, maybe there is something in the container - the information here is not always complete - but it is not helpful in this case).

      Going back to what really should work: DRB. You have stated that POC_DRB_BOR_RELSHIP does show the sales order. Please really check that!

      One more thing that you should check is table POC_D_PRE_BA. In POC_MONITOR check the process ID (you need to add that to the list of visible columns in the ALV on the search page of POC_MONITOR) of the process that has the outbound delivery created when you made the creation of the outbound delivery a start activity. In SE16 for table POC_D_PRE_BA check if for that process_id you there is an entry. The entry of the predecessor should be there, even if the predecessor does not exist on the database (this is used for local federation). - Alternatively you can use the task ID of the outbound delivery task using POC_DISPLAY_BA. I am not sure what to expect, but it would be helpful to know if there is an entry.

      Other than that... I'm pretty lost. My next step would be to put a break-point in CL_POC_BOR_EVENT=>GET_PREVIOUS_BOS_DRB where CALL FUNCTION 'DRB_NEIGHBOURS_GET' is called and see if lt_previous_bor_objects is filled as expected. I suspect that this method is never called because of something strange (BAdI-implementation) is going on.

      If this is all fine, I would check in BOR_EVENT_HANDLER at the end, right when CALL METHOD lo_poc_ba_observer->raise_event is executed and inspect lt_ba-PRE_BO_DATA if that is filled as expected.

      If this is all well, then things get a bit more complicated.

      To execute the break-points, you will need to un-schedule the report in SM37 (POCR_MAIN_QUEUE) and execute rswfevtpoqueue in dialog. This should be done only in a test enviroment, since it may lead to issues with direct events that should be processed in proper order - events may thus be ignored or added to the log in the wrong order.

      I think we're at a point where you should raise an OSS - or at least talk more directly since finding this issue may become a tedious and lengthy issue if we have talk solve the problem by you checking the data etc.


      Best regards,

      Christoph

  • Aug 13, 2014 at 01:12 PM

    Hi Experts,

    is there a known issue with the version of the process definition?

    From the proof of concept phase in the project the process observer was already configured for one small straight forward process. Now I created the complete setup and implemented the final process definition in a new version.

    The 'Current Version' of the Process Definition Header is set to '2'. The Active flag is set for version '2'. For version '1' the flag is removed.

    When I now execute the process nothing is recorded. Starting transaction 'POC_MONITOR' for the relvant process definition I receive the message "No data found for the entered criteria".

    Transaction POC_TASK finally shows that a process was started but for the task which belongs to version '1' and not for the current version '2'.

    Are there any further settings to be considered?

    Best regards,

    Markus

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Christoph,

      after it was clear that the versioning works fine and transaction POC_MODEL_CHECK does not show any error I re-checked the BAdI implementations.

      Finally I found the issue in the implementation of BAdI POC_INSTR_MAP_EVT_TASK. Small but with big impact!

      Thank you for your quick response. It helped me to narrow down the problem.

      Best regards,

      Markus

  • Sep 08, 2014 at 03:49 PM

    Hi everyone, I initially posted this in the Business Process Management area.. but found this may be a better spot for my question..

    This is our first Process Observer implementation. I'm using a custom BOR object to track an end to end process.

    My Activities begin with the receipt of new or updated data from an external system and ends with a Goods Issue / Receipt Document Create. I manually call a final Activity called "Actualized" in a clean up Method.

    1. Information Rec'd from external application
    2. STO / PO / SO (or any combination) created
    3. Possible Updates to STO / PO / SO
    4. Inbound or Outbound Delivery Document Created
    5. Goods Issue or Receipt Document Created
    6. Final Actualization Cleanup

    I've assigned #1 as the Start and #5 as the End of the process.

    I've been testing and the POC_MONITOR is picking up the Starting Tasks - great!

    However, I have some processes that should have been put in a Completed Status since they've hit their Ending Task.


    But, if you notice, it's still in "Running" status. How do I get this process to "Complete"?

    Thanks,

    Robert.


    Add comment
    10|10000 characters needed characters exceeded

  • Oct 07, 2014 at 07:22 PM

    Hi,

    I've created a 2nd process definition... but for some reason, my Start task is showing up twice in the Process Details in POC_MONITOR.

    The Starting task can be 1) Purchase Order Creation or 2) Sales Order Creation or 3) Stock Transport Order Creation.

    When I'm executing my Order Creation, I'm seeing two entries in the POC_MONITOR for each process.

    Any idea what might be causing the Start Activity to show up twice with the same Order Number at the same time?

    Thanks,

    Robert.


    order model1.jpg (202.7 kB)
    monitor 1.jpg (131.8 kB)
    monitor 3.jpg (116.4 kB)
    Add comment
    10|10000 characters needed characters exceeded

    • The one change in customizing that may solve the issue, when your're using the direct event API POC_RAISE_EVENT (and not a BOR event) to create the order, is to look into the customizing settings POC_CUSTOMIZING - General Settings - Check Process Monitoring Events for BOR. Here you could uncheck the event active flag for BUS2032 CREATED, as throgh this setting it may have been raised zwice: by the BOR event and the direct event API. If you are using (only) the BOR event you should however keep it as active. Regards, BErnd

  • Oct 20, 2014 at 07:12 PM

    Hey everyone. I see from early posts that Process Observer relies on DRB to string documents together in an end to end process.

    After I created my model and started recording transactions, I handed POC over to my HANA guy for report creation.

    He sees the transaction records but has no idea how to link them together. Can you tell me if there is a shared GUID or something that ties all the processes together?

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Dec 23, 2014 at 11:48 AM

    Hi Expert,

    I have configured Process Observer for Sales Process (SO Create, SO Change, OD create and PGI)

    All events are triggered sucessfully and I can monitor it using POC_MONITOR.

    I am facing below 2 issues -

    1. Even after completing all steps as per process defination process status stays as "Running" instead of "Finished"

    2. Count KPI is not counting as expected, value is zero even after chaning SO multiple times.

    Please help with suggestions

    Thanks

    Nitin Deshpande

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Nitin,

      happy to see that the process status is now working in your sample. Eventually, the end flag was missing in your first process definition. To avoid these kinds of errors it may be useful to run the Process Definition Checks, i.e. report (or transaction) POC_MODEL_CHECK. This is always a good practice. With a later support package, we have also integrated it into the Process Definition Viewer, so you can start it right from there.

      When I look at the count KPI definition, I see that you have defined to count only the SO changes that are done after an outbook delivery was created. In your log sample all changes are done before the delivery was created.

      To count all SO changes, you can change the KPI definition in the following way: Clear the determiner and the determiner definition and try again.

      Regards,

      Bernd

  • avatar image
    Former Member
    Jan 09, 2015 at 12:06 PM

    Hi christoph,

    I have a question on retrieving the historical data for process observer. I learnt from the documentation that the data will be logged in the process observer only from the day the process observer is made active. So, to retrieve the historical data for the process log, there is an appropriate report. Are there any standard reports to retrieve this historical data into the process log directly. If so, can you provide the report names.

    Requst your suggestions on the above.

    Thanks

    Radhika

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Jens-Christoph Nolte

      Hi Christoph,

      Our requirement is to identify all the functionalities/features implemented in SAP in the client landscape and find out how many of those are being used by the business. So, we are looking at process observer as a tool ot identify the existing functionalities in the system. For this, we need the historical data to check if the functionalities are executed at aleast once. If at least once, the functionality/feature was used, it means that it is setup for configuration, Otherwise not.