cancel
Showing results for 
Search instead for 
Did you mean: 

WorkManager 6.0 Order Push

oliver_kaluscha3
Participant
0 Kudos

Hi,

I have an issue with WorkManager 6.0 Order Push scenario on SMP2.3 and Agentry DEV server.

We want to push PM Workorders with priority VeryHigh to the device.

We have installed SMP2.3 SP03 PL01, WorkManager 6.0.

Client Device is a Windows 7 64Bit Laptop.

Development is done on Windows7, 64Bit Windows PC

Data processing works fine, either against SMP2.3 or directly with Agentry Dev server on local dev pc.

I went through the Setup and the Config guide to setup backend and server for WorkOrder Push.

As shown in the dev guide I did not change anything on the server - based on the setup guide the settings seem to be correct.

On the local server installation I did change the setting in JaveBE.ini file:

[PUSH_LOGON]

ENABLED=true

UID=<bckUser>

UPASSWORD=<bckPassword>

UPASSWORDENCODED=true

SHAREDCONNECTION=10

The Post is set to 8282 on both sides.

I can see in the startup log, that the connection to the backend works. As I was playing around and did enter a wrong password, it gave me an exception. So I think from that it takes these settings and it should work fine.

If I check entries in tables /SYCLO/PSH01 and /SYCLO/PSH05 I can see there are the correct order numbers shown.

But: in monitoring I am not able to see that anything gets pushed and the PURGE_PROC does not deliver any results either.

Running the PUSH_PROC_PROG did not solve the issue - I did that cause I thought I would give it a try.

If I try to connect to my local development server with a different client to the server using my username, it tells me I am already connected with a different client. And in SMP2.3 monitoring my user is shown as an active user. So from that my clients should be connected to the server as well.

I went through the config guide a few times and still I am not able to see what the issue might be.

So in simple words: what am I missing here? Is there a simple setting I am missing or do I have a complete missunderstanding of the process?

Tags edited by: Michael Appleby

Accepted Solutions (0)

Answers (3)

Answers (3)

oliver_kaluscha3
Participant
0 Kudos

Hi,

after I have debugged through the system for a few days and asked all kinds of questions, the answer was strange but easy.

For some reason the configuration of table /syclo/PSH00 was incorrect. Order PUSH did point to ORDER_OPERATION_PUSH. So I needed to correct his in the EFI Portal and all works fine since.....

Sorry for the confusion, and thanx a lot for your great help. Finally I know now how the WorkManager 6.0 push works and where I need to change values to get different results.

Regards,

Oliver

mark_pe
Active Contributor
0 Kudos

Oliver,

Just to confirm, do you have an issue with the out of the box code or did somebody modify your setup? We may need the info if there is a problem so we can remedy it in the actual out of the box. Please clarify what was incorrect? We need to keep track if we need to fix it.

Regards,

Mark

oliver_kaluscha3
Participant
0 Kudos

Hi Resmi,

thanx a lot for your mail.

It took me some time to get propper authorisation - now I have been able to check SM64, and the event is not shown there.

Where is this mentioned in the config guide? Do you have any documentation link to this?

Well, on the other hand I thought: if I run the BAPI manually it should bring the order down as well?

So the simple question is: is there some manuall process I can run in the backend to simulate the push?

Once I know the thing works as such and I have no other problem, I will make sure the event is created and running fine.

0 Kudos

Hi Oliver,

You can refer under post installation section on "Mobile add on erp installation document". Its available in SAP Market place.

By executing the push BAPI /SYCLO/PM_DOPUSHWORKORDER_GET you can verify the push queue for the new iteme.

Thanks

Resmi

oliver_kaluscha3
Participant
0 Kudos

Hi Resmi,

thanx a lot for this.

Just another dummy question

If I start the BAPI in se37, I need to enter some Data into the BAPI structure.

Well, mobile_user is obvious I think, it should be my SAP user, that I use to login to Agentry client. But where do I get MOBILE_ID and USER_GUID from and what other data should I enter into the structure to et propper result?

I usually set a remote breakpoint and simply do run a sync - but this is not possible with this method

Thanx a lot again for your help!

jason_latko
Advisor
Advisor
0 Kudos

Oliver,

Usually when running Syclo BAPIs in SE37, you only need to provide the user GUID.  You are correct that mobile_user is your login name.

To look up your user_guid, browse table "/SYCLO/MDW00" using SE16.  The field you are looking for is "SAP_USERID".  If you have multiple apps installed, you will also need to look at field "MOBILE_APP".  You can also see your user_guid echoed in the Agentry logs when BAPIs are run.  It is possible to copy and paste it into SE37 from there.

Jason Latko - Senior Product Developer at SAP

Former Member
0 Kudos

Is this event triggered background job still needed in WM60? If I look at the config panel for push scenarios, all the background job settings are disabled. Instead it seems to be an internal qRFC now.

The ERP add on config guide does mention background jobs, so does WM 60 config guide section 1.6.13. However in section 7, it is depticted differently.  Does anybody know the correct setting?

thanks

Stephan


oliver_kaluscha3
Participant
0 Kudos

Hi Jason,

this gets strange now.

I have checked the complete config guide again - and it seem to be ok.

I even have compared an untouched system with my system - both seem to be the same.

But: I do not even get any data into /SYCLO/PSH1 table for a few days now.

And I have not changed anything.

Which function module can I debug here to see what is going wrong?

And the other question: why does agentry not use BTE handlers - that would make life and tracing so much more easy.....

Thanx for your help.

Oliver

mark_pe
Active Contributor
0 Kudos

From general comments from the SAP consulting (internal experts on installing the product onsite) when this thread was presented to them, they mentioned that /SYCLO/PSH01 table will not be populated if the Post Installation steps were not completed. They also suggested to configure 2 number ranges.

This is in line with what Resmi indicated above on the post installation section.

Regards,

Mark

oliver_kaluscha3
Participant
0 Kudos

Hi Mark,

thanx a lot for your answer. I did check the setup guide again, and here is what I have found:

1.) Activating BC sets

These had been transported into the system, so there was no activation log. But nevertheless: I can see the app in the Syclo CFG Portal and I am able to use it as such. So I would say the app BC set must be registered correctly and completely.

2.) Activate the Service

In SICF all Syclo services are active - otherwise I would expect that the usage of the config panel would fail.

3.) Define number range objects

Number range objects are defined for both counters. I did set them up based on a config document available here at SCN in November already.

/SYCLO/C_1

/SYCLO/C_2

There are different documentations around. Some say we should use 2 counters, other mention to setup 5 counters. I went with the 5.......

4.) Define Background Job

Well, these are Purge Jobs and I would expect, that these are relevant to clean the tables once the push did work or is out of date. These are missing, cause I do not have proper authorisations to run these programs.

Anyways, based on this setup guide it should work fine - and the table PSH01 got filled until 22.01.

BUT: since there are no new entries - so I wonder what has changed and how I can get there by debugging.

So my initial question is: what triggers the writing into table PSH01? I did check the usage and did set various remote breakpoints, but none of these got called. So I wonder if you can tell me:

Workmanager 6.0 out of the box - if I save a workorder status Very High - which Programm/Class/BAPI is called and is this done with my user or with a system user?

With this info I should be able to debug myself through the problem.

Thanx,

Oliver

0 Kudos

Hi Oliver,

The push exchange process initiates the push trigger based on the push conditions. The push conditions are defined as a filter rules in the push exchange object. You could refer this in the syclo config pael.

If the Work Order created/changed meets the configuration settings of the exchange handler then an entry is made into the /SYCLO/PSH01 table.

The Agentry Server calls the push BAPI /SMERP/PM_DOPUSHWORKORDER_GET for every

predefined time interval and checks the push queue for new items.

Thanks

Resmi

oliver_kaluscha3
Participant
0 Kudos

Hi Resmi,

thanks a lot for your answer.

I know that the Agentry server calls this method - as said before: the issue happens much more early and I still try to find how to get to this point.

I know FIBF change listeners - but these are not used inside Agentry.

Where is the registration happening for change listeners based on the push exchange process?

simple question:

I can see the definition for workorder push - and I get the Classes and function modules form there.

Regardless where I set a breakpoint (usual and remote), none of these seem to be called. So I am not able to debug into the issue.

What is the issue: PSH01 and PSH02 tables stay empty.

So my problem is at the very very beginning of the complete process and I have no idea where else I should check that. I went through the complete documentation of PUSH handling and based on that documentation it should work. All ticks are set, push handlers are defined, number ranges are there, BC set is active.....

So: there must be the initial function module that is called whenever I save a new created workorder. It is not the class not is it the function module that is defined in the admin portal, cause in there I did set breakpoints. So if these would be the issue (or wrong settings) I would expect that these breakpoints are called.

So the simply questions are:

- what is the very first function module or class/method that is called to find out if something has to be written into PSH01 table?

- is this function module called with my user (otherwise I am not able to debug)

- where can I check if the registration of this function did happen correctly?

Thanks a lot for any help!

Regards,

Oliver

0 Kudos

Hi Oliver,

Any Work Order created/changed in SAP goes through the SAP Update Routine/EFI Plugin where it checks for the Push related Exchange Object settings.

If the work order is valid for push, then it inserts the work order details into /syclo/psh01 table.

Refer the Enhancement Implementation include associated to the exchange objects in config panel.

Function module CO_VB_ORDER_POST,

EFI-> /SYCLO/PM_EFI_AUFNR_EX_INCL

Thanks

Resmi

oliver_kaluscha3
Participant
0 Kudos

Hi Resmi,

thanx a lot for your help!

But - I already checked this and .... let see. This is the screenshot:

So this looks pretty standard - cause the users did not change and are set to SAP Standard delivery.

I already went into the EFI and into the function module you mentioned - I did set remote and usual breakpoints - did save a workorder - and it was not even calling the breakpoints.

As mentioned - it must be even before that.

Well, but perhaps this gives a hint. I did check for your mentioned function module and I thought: perhaps there is a typo. So, the POST function you mentioned is not called, instead we call:

CO_BC_ORDER_POST  instead of the CO_VB_ORDER_POST

can this be the issue? How could this be changed?

Any suggestions?

Regards,

Oliver

mark_pe
Active Contributor
0 Kudos

Oliver,

From your comment:

Anyways, based on this setup guide it should work fine - and the table PSH01 got filled until 22.01.

BUT: since there are no new entries - so I wonder what has changed and how I can get there by debugging.

Our comment:

The push queues have to be flushed or they can manually execute the retry program.


Regards,

Mark

oliver_kaluscha3
Participant
0 Kudos

Hi Mark,

thanx for your mail.

I guess the retry would help if the data is in the PSH01 table - so does the flush.

But the data is not even in the table and as Iwrote in a previous answer to Resmi, it seems we do not call the correct POST function.

We do call CO_BC_ORDER_POST  instead of the CO_VB_ORDER_POST. So I wonder if I simply should add the enhancement into CO_BC_ORDER_POST - but on the other hand there must be an easier way to do that - more standard.....

Or am I on the wrong way here?

Regards,

Oliver

syam_yalamati
Product and Topic Expert
Product and Topic Expert
0 Kudos


Hi Oliver,

 

If you are using IW31/IW32 or BAPI_ALM_ORDER_MAINTAIN to create/update work order it will definitely call CO_VB_ORDER_POST module in the transaction update. There could be something else, do you have any upgrades to your system recently or any new Add-on implementations. Sometimes these new Add-ons will cause implicit enhancements to skip unless you generate the Add-on code using SGEN or manually these routines where ever implicit enhancements are implemented. If this is the case, try to activate the module CO_VB_ORDER_POST to make sure function module code is re-generated and will automatically generate the implicit enhancements.

Regards

Syam

jason_latko
Advisor
Advisor
0 Kudos

For those that don't know him, Syam is a senior Syclo backend architect and ABAP programmer.  He is an incredible wealth of knowledge and there is nothing about the ERP and CRM interfaces between SAP and the Syclo products that he does not know in an expert capacity.

Glad to see you chime in Syam!  Don't be a stranger here.

Jason Latko - Senior Product Developer at SAP

oliver_kaluscha3
Participant
0 Kudos

Hi Syam,

sorry I thought I already added this information: it was a not compiled class - I have seen it as I tried to set a breakpoint. Recompiling that class cured the issue - very strange.

Now the post function gets called like we all would expect it from the very beginning.

Mark Pe mentioned I need to flush the queue - how do I do this - what is the class to flush the queue?

Thanx,

Oliver

syam_yalamati
Product and Topic Expert
Product and Topic Expert
0 Kudos

Thanks Jason... for your valuable comments.

syam_yalamati
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Oliver,

   You can use the program /SYCLO/CORE_PUSH_PURGE_PROG to clear all push queue entries for that application, but before that is your push instance got updated to /SYCLO/PSH01 & /SYCLO/PSH02 tables.  If so please run the program /SYCLO/CORE_OTRIG_RETRY_PROG for the particular scenario ID and make sure your sever is identified in the output list.

Regards

Syam

Former Member
0 Kudos

Syam,

Glad to see you join us on the SCN.

Stephen

0 Kudos

Hello,

You could verify the event "/SYCLO/BACKGROUND_JOB_EVENT" is getting raised after the work order is saved.This would triggers the background job for the push processer agent.

Ensure this event is existing in the system, If this event does not exist in the system, define a custom event of /SYCLO/BACKGROUND_JOB_EVENT using transaction code SM64.

Verify the job /SYCLO/CORE_PUSH_PROC_PROG is getting triggered or not.

Execute the push BAPI "/SYCLO/PM_DOPUSHWORKORDER_GET" and see its retriving the results.

Thanks

Resmi

oliver_kaluscha3
Participant
0 Kudos

Hi,

the actual status on this issue:

It really did not call the POST function module - but as I tried to set a breakpoint at the point, where it calls this POST function, it had a compile issue. I had seen this as I tried to set a breakpoint at the point where it calls this funciton.

So I simply did a recompile of that codeline and now it calls the correct POST function.

Now it should be simple debug to find the further issues......