HR02 User Exit

 9 Replies
 0 Subscribed to this topic
 17 Subscribed to this forum
Sort:
Author
Messages
SamKinnamon
New Member
Posts: 2
New Member

    Hi everyone--

    Hopefully this is something very easy that I am just missing, since I am new to using Lawson and User Exits.  My problem is that I have a User Exit for HR02.  The user exit kicks off a process flow each time a department is changed, added or deleted.  The user exit works perfectly when it is executed in the LID.  But, it does not appear to triggered at all when a change is made in Portal.

    I have tried an ISO Cache Refresh.  In addition, I've done the tmcontrol -rp hr hr02 and tmcontrol -rp hr hr02b.  I've also restarted the Lawson services on our server to no avail.  Is there something that I'm missing?

    We are on a Windows server.

    Thanks for any help!

    SamKinnamon
    New Member
    Posts: 2
    New Member

      I've figured this out.  It seems that I am my own victim.  I had compiled the user exit against the wrong product line.

      Chesca
      Veteran Member
      Posts: 490
      Veteran Member
        Could you please show me step by step how to create a simple user exit for an LP program? Would it matter if the source files were empty to start with and then I can add user exits as needed? I just want to see how it works first. Thanks
        Ragu Raghavan
        Veteran Member
        Posts: 476
        Veteran Member
          Do you have access to the support site ? Look for a document "Doc for Developers: Application
          Development Workbench Standards". This has a section on user exits that may help.
          Chesca
          Veteran Member
          Posts: 490
          Veteran Member
            Yes, I do. However, I am having issues editing the LPCUSTOMPD to create my first user exit called LP140VAC1-TRANSACTION and add my logic.
            Ragu Raghavan
            Veteran Member
            Posts: 476
            Veteran Member
              That is a different animal all together.
              Here is an example :

              000220 3000-USER-EXIT-CALC-AMT SECTION.
              000230****************************************************************
              000240 3000-START.
              000250
              000260 INITIALIZE LPC-CALC-AMOUNT.
              000270
              IF (LPMST-CALCULATION = "VFTPAY7.21" OR
              "VFTPAY4.04" OR
              "VFTPAY4.33" OR
              "VFTPAY5.38" OR
              "VFTPAY5.58" OR
              "VFTPAY5.77" OR
              "VFTPAY6.73" OR
              "VFTPAY6.97" OR
              "VFTPAY8.08" OR
              "VFTPAY8.37" OR
              "VFTPAY8.65" OR
              "VFTPAY5.77" OR
              "VFTPAY7.21" OR
              "VFTPAY8.08" OR
              "VFTPAY8.65" OR
              "VFTPAY9.42" OR
              "VFTPAY1010")

              * DISPLAY "CUSTOM CALC " LPMST-CALCULATION
              MOVE LPMST-TEM-EMPLOYEE TO DB-EMPLOYEE
              PERFORM 840-FIND-EMPSET1
              COMPUTE LPC-CALC-AMOUNT ROUNDED =
              EMP-PAY-RATE * TCA-USER-NUM-1
              DISPLAY "CUSTOM CALC " LPMST-CALCULATION
              " FOR " LPMST-TEM-EMPLOYEE " " LPC-CALC-AMOUNT
              END-IF.
              Chesca
              Veteran Member
              Posts: 490
              Veteran Member
                Ragu, your post was very helpful. I just have a question, is the coded added within 3000-USER-EXIT-CALC-AMT or I would have to create a new one? But I don't see how it would be called by the base program LP140? Hey have your company moved from TA to Absence management yet?

                LPCUSTOMPD code:

                3000-USER-EXIT-CALC-AMT SECTION.
                000230****************************************************************
                000240 3000-START.
                000250
                000260 INITIALIZE LPC-CALC-AMOUNT.
                IF (EMP-PROCESS-LEVEL = "XXX")
                PERFORM 3010-LPVACHRI-TRANSACTION
                THRU 3010-LPVACHRI-TRANSACTION-END
                END-IF.
                ******************************************************************
                3010-LPVACHRI-TRANSACTION.
                ******************************************************************
                ***LP VACATION SUBROUTINE FOR XX 
                000270 IF (EMP-PROCESS-LEVEL = "XXX")
                IF (PEM-BARGAIN-UNIT = "00" OR "06" OR "07")
                IF (LPC-ACR-HOURS >= (EMP-STAND-HOURS * 7))
                OR (LPC-ACR-HOURS > EMP-STAND-HOURS)
                000280 OR (LPC-ACR-HOURS = EMP-STAND-HOURS)
                Ragu Raghavan
                Veteran Member
                Posts: 476
                Veteran Member
                  Some section in LP140 or one of the libs that LP140 uses, calls 3000-USER-EXIT...
                  When control returns to the calling routune, it checks the value in the variable LPC-CALC-AMOUNT
                  Chesca
                  Veteran Member
                  Posts: 490
                  Veteran Member
                    ragu, it's starting to make more sense now except that I don't know if the LPMST- fields will be populated and passed to be use in my LPCUSTOMPD routine. I don't have any data to test and see. 

                    3000-USER-EXIT-CALC-AMT
                    I   INITIALIZE LPC-CALC-AMOUNT.
                        PERFORM 3100-LPVACATION-CALC.



                    3100-LPVACATION-CALC           SECTION 50.
                    *** LOOKUP TAEMPSERV RECORD FOR INPUT EMPLOYEELOYEE
                               INITIALIZE                                          DB-TES-OBJ-ID.
                               MOVE LPMST-TEM-COMPANY  TO DB-COMPANY.
                               MOVE LPMST-TEM-EMPLOYEE TO DB-EMPLOYEE.
                               PERFORM 840-FIND-TESSET1.
                               IF (TAEMPSERV-NOTFOUND)
                                   GO TO 3100-END.
                    Chesca
                    Veteran Member
                    Posts: 490
                    Veteran Member
                      Hi Ragu, I wanted to give you a update about this exit routine. LPCUSTOMPD turned out to be a library routine and not a user exit. It's called by LP140, LP14 and LP198. So I added cutom code in this library to calculate accruals when called by LP140. So it's working as expected. Thank you for all you input.