SAP for Insurance Discussions
Engage in conversations about risk management, customer experience, and digital transformation using SAP in the insurance industry. Join the discussion!
cancel
Showing results for 
Search instead for 
Did you mean: 

Time Model Functions in SAP FS-PM

Former Member
0 Kudos

Hi All,

Can someone give me some straight points on Business Transaction Scheduler Vs Time Model Functions.

1. Steps for Planning and Scheduling a TMF upon reaching the certain dates. Have some idea on Defining Dates for TMF but need more clear picture on how a TMF works.

2. How a BTS works differently from TMF scheduling.As i could see that both are meant for the similar purpose.

Appreciate your help at the earliest. Thanks!

Best Regards,

Tahera

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

There are (very universal) two types of TMFs.

1. First TMFs, that organize their own scheduling.

  • FUNC1 - e.g. RECURPREM = /PM0/CL_ABZ_BPU_TMF1_RECURPREM
  • FUNC2 - e.g. BCV = /PM0/CL_ALZ_BPU_TMF2_BVC
  • FUNC3 - e.g. PTPOLPREXP = /PM0/CL_ALZ_BPU_TMF3_PTPOLPREX
  • FUNC5 - e.g. TAXCORR = /PM0/CL_ABZ_BPU_TMF5_CORRTAXPR

     Those TMFs will check if they have to change their scheduled date for a contract after every unplaned ammendmendt (Coding is in Method: DETERMINE_DATES_AUA )

2. TMFs that have to be planned externely (by coding or by transaction "/PM0/ABC_PLANEXDT")

  • FUNC4 - e.g. DETINTDEP = /PM0/CL_ABZ_BPU_TMF4_DETINTDEP
  • FUNC7- e.g. PEXENDREM = /PM0/CL_APZ_BPU_TMF7_PEXENDREM

If you don´t want to create extreme FS-PM magic with TMFs often the following Methods are sufficent:

PREPROC_INDIVIDUALLY - Is called before the insurance mathematic (msg.PM) kicks in, useful if you want to have some preprocessing.

CALL_IM_INDIVIDUALLY - thats the Method for special handling of an insurance mathematic call.

HANDLE_RESULTS_IM - Handling of the results of an IM-Call

POSTPROC_INDIVIDUALLY - your personal processing AFTER the IM call.

Also nice:

DETERMINE_DATES_AUA - Calculates the next effective date when this TMF should kick in.

GET_NEXT_DATE - Also to calculate the next date. Mostly you will have your date determine logic in here.

Now about BTS-Dates.
They are also executed in the positioning process of a contract. But there the similarities with TMFs more or less ends.

A BTS-Date is per definition a "normal" Business Transaction (like "Change Clause"). When creating a BTS date, you have du fill data container, so that the BTS knows what to do.

A TMF on the other side is (mostly) independent. They do not need special data when you schedule them.

E.g predated Business transactions are technically BTS-dates.

So, you use a BTS date when you want to execute a input dependent process logic (mostly processes, you can also use as a Business Transaction in dialog). And you use TMFs when you have a process logic that is independent from any external input (TMFs mostly use only the data they find in ther processing contracts).

Hope that helps a bit.

warm regards

Jan

View solution in original post

5 REPLIES 5

Former Member
0 Kudos

Hi,

There are (very universal) two types of TMFs.

1. First TMFs, that organize their own scheduling.

  • FUNC1 - e.g. RECURPREM = /PM0/CL_ABZ_BPU_TMF1_RECURPREM
  • FUNC2 - e.g. BCV = /PM0/CL_ALZ_BPU_TMF2_BVC
  • FUNC3 - e.g. PTPOLPREXP = /PM0/CL_ALZ_BPU_TMF3_PTPOLPREX
  • FUNC5 - e.g. TAXCORR = /PM0/CL_ABZ_BPU_TMF5_CORRTAXPR

     Those TMFs will check if they have to change their scheduled date for a contract after every unplaned ammendmendt (Coding is in Method: DETERMINE_DATES_AUA )

2. TMFs that have to be planned externely (by coding or by transaction "/PM0/ABC_PLANEXDT")

  • FUNC4 - e.g. DETINTDEP = /PM0/CL_ABZ_BPU_TMF4_DETINTDEP
  • FUNC7- e.g. PEXENDREM = /PM0/CL_APZ_BPU_TMF7_PEXENDREM

If you don´t want to create extreme FS-PM magic with TMFs often the following Methods are sufficent:

PREPROC_INDIVIDUALLY - Is called before the insurance mathematic (msg.PM) kicks in, useful if you want to have some preprocessing.

CALL_IM_INDIVIDUALLY - thats the Method for special handling of an insurance mathematic call.

HANDLE_RESULTS_IM - Handling of the results of an IM-Call

POSTPROC_INDIVIDUALLY - your personal processing AFTER the IM call.

Also nice:

DETERMINE_DATES_AUA - Calculates the next effective date when this TMF should kick in.

GET_NEXT_DATE - Also to calculate the next date. Mostly you will have your date determine logic in here.

Now about BTS-Dates.
They are also executed in the positioning process of a contract. But there the similarities with TMFs more or less ends.

A BTS-Date is per definition a "normal" Business Transaction (like "Change Clause"). When creating a BTS date, you have du fill data container, so that the BTS knows what to do.

A TMF on the other side is (mostly) independent. They do not need special data when you schedule them.

E.g predated Business transactions are technically BTS-dates.

So, you use a BTS date when you want to execute a input dependent process logic (mostly processes, you can also use as a Business Transaction in dialog). And you use TMFs when you have a process logic that is independent from any external input (TMFs mostly use only the data they find in ther processing contracts).

Hope that helps a bit.

warm regards

Jan

0 Kudos

Thanks a lot Jan. Your inputs were helpful.

Can you please give inputs on  Un-scheduling a scheduled TMF.

Best Regards,

Tahera

0 Kudos

Hi Tahera,

their is a difference between TMF that take care of their own scheduling (FUNC1,2,3 and 5) and the external TMFs (4 and 7).

For an external TMF try the class "/PM0/CL_ABZ_BPU_EXTDT_UBOI".

Their are Methods for creating (CREATE_NEW_EXTDTS) and deleting (SET_EXTDT_EXECUTED) dates.

If those don´t work, every external tmf has their dates in the databasetable /PM0/ABDUTRDPTDT (if it is a FUNC4) or, for correspondence TMFs in /PM0/ABDUCORDT (FUNC5).

Also, if it is the next date that must be executed for a contract, than the date will also be saved in the databasetable /PM0/ABDUPPJOB (here is for every contract the earliest, until now not executed, date).

For TMFs that handle their own scheduling it´s a tough one. Everytime the police is changed, all customized TMFs will check if they have to change their scheduling.
So, even if you kill their dates hard in the database tables (/PM0/ABDADATE and also  /PM0/ABDUPPJOB) they will replan themselfs and you have a good chance that you have created a corrupt policy.

Changing the scheduling of already producitve, selfscheduling TMFs is a piece of work.

If you change the customizing, or the coding of their date-determination, all new dates will work correctly in the new order. But if you have a reactivation of a policy (a change in the past), their may be OLD journal-entries of those TMFs, created with the OLD logic. After the undo, the redo will happen with the new logic... I would guess you have than a good chance of journal conflicts...

So if you change something on selfscheduling TMFs, you mostly have to migrate your policy data (at least the journal entries th and tmf dates).

Warm regards

Jan

0 Kudos

Thanks a lot Jan.

0 Kudos

Hi Jan,

Could you please help me in understanding the below:

While debugging the new business i went through the class /PM0/CL_APH_PM_CALCULATION_PRO and the adapter Interface /PM0/IF_APR_PM_ADAPTER_PRO and got some basic understanding on how a FS-PM system interacts with Product Engine. Also Product Engine interfaces are assigned to corresponding classes at Policy and Contract level only.

Now my queries are as below. Kindly provide more information on these.Appreciate your help at the earliest.

1) All I have understood is that while using PRO/msg.Pm services in a TMF, A Method CALL_IM_INDIVIDUALLY sets the parameters to request data from PRO system and we handle the results using the method HANDLE_RESULTS_IM. But inside this method it is getting the data at a high level (either Policy or Contract) it is using the method "call_pcmodcontract". When i need customized fields at the Insured object level,Premium payer level which is at lower level which methods i can use.

2) Are these methods /PM0/IF_APR_PM_CALCULATION~GET_RESULT_* and /PM0/IF_APR_PM_CALCULATION~PC* are like getters and setters(Request and Response) Methods at PRO system ??

3) If i need to get the customized fields information from PRO system usually which methods i need to call.(Need more information on this).

4) Explain the usage of these methods PCACCOUNTREPVAL,PCADJUSTMENT,PCMIGRATION,PCMODCONTRACT,PCRATING,PCREVERSAL.

5) Usually i see most of the time that only these methods are implemented PCRATING and PCMODCONTRACT. Any Specific purpose of these methods ?

Appreciate your inputs on the above at the earliest. Thanks !

Best Regards,

Tahera