Requistion History

 9 Replies
 0 Subscribed to this topic
 43 Subscribed to this forum
Sort:
Author
Messages
Jeff
Advanced Member
Posts: 30
Advanced Member
    How does one view the status and history of a requistion as it flows through the approval process within Lawson?  Are there standardized reports or screens that provide this level of information?  Any guidance is appreciated.
    John Henley
    Posts: 3353
      Are you referring to purchase requisitions (PO/RQ) or job requisitions (HR/PA)?
      Thanks for using the LawsonGuru.com forums!
      John
      Derek Czarny
      Veteran Member
      Posts: 63
      Veteran Member

        You can either write a Portal Page(Design Studio), which is what I chose to display that information, or probably do it in a Crystal Report.  I don't think there is anything that comes standard.

        Jeff
        Advanced Member
        Posts: 30
        Advanced Member
          Derek,

          Thank you for your reply. Was hoping that the Lawson front-end had some means of providing this information but apparently not. I don't believe we have license to Design Studio and not many have access to the database via Crystal or any other query means. Wrote SQL against the database while testing the application but since going-live, that option has been taken away.

          Jeff
          Tim Cochrane
          Veteran Member
          Posts: 154
          Veteran Member
            Assuming you're reqs go thru ProcessFlows - We wrote a custom batch prog that queries the WF tables, looking for all work units that are "Inprogress", and displays info about each action (current inbasket, time in inbasket, previous approvers, etc). Since the batch program is an ad-hoc application side program, we had to create db2 views (SQL select) of the Logan tables.
            Tim Cochrane - Principal LM/IPA Consultant
            Jeff
            Advanced Member
            Posts: 30
            Advanced Member
              Tim,

              Could you share the SQL against the WF tables?  We are using ProcessFlows but have just implemented Lawson and are still learning our way around the application and database.  I would like to pass on the SQL to our reporting staff so they would at least know where to look and how to produce such information.

              Here is SQL that I had written while testing against our Oracle tables:
              SELECT reqheader.req_number AS "REQ #",
                     reqheader.creation_date "Create Date",
                     reqheader.buyer_code AS "Buyer",
                     requester.r_name AS "Requester",
                     rqloc.r_name AS "Requester Location",
                     reqheader.vendor AS "Vendor Code",
                     reqheader.vendor_name AS "Vendor Name",
                     CASE reqheader.r_status
                        WHEN 0 THEN 'Unreleased'
                        WHEN 1 THEN 'Released'
                        WHEN 5 THEN 'In Process'
                        WHEN 9 THEN 'Processed'
                        WHEN 8 THEN 'Rejected'
                        ELSE 'Unknown Status Code'
                     END
                        "Status",
                     reqheader.activity AS "Activity",
                     reqheader.acct_category AS "Account Category",
                     reqheader.acct_unit AS "Acct Unit",
                     reqheader.account AS "Account",
                     reqheader.sub_acct AS "Sub Account",
                     CASE reqheader.approval_type
                        WHEN '0' THEN 'Header approval-Approval codes'
                        WHEN '1' THEN 'Header approval-Process Flow'
                        WHEN '2' THEN 'Line approval'
                        WHEN '3' THEN 'No approval required'
                        ELSE 'Unknown Type Code'
                     END
                        "Approval Type",
                     reqheader.last_aprv_dt AS "Last Approval Date",
                     reqheader.po_user_fld_3 AS "User Field 03",
                     reqheader.deliver_to AS "Deliver To",
                     approclev.r_name AS "Process Level",
                     reqline.line_nbr AS "Line #",
                     reqheader.i_total + reqheader.n_total + reqheader.x_s_total
                        AS "Req Approved Value",
                     reqline.entered_uom AS "UOM",
                     reqline.quantity AS "Qty",
                     reqline.unit_cost AS "Unit Cost",
                     CASE
                        WHEN reqline.entered_uom = 'EA'
                        THEN
                           reqline.tran_unit_cost * reqline.quantity
                        ELSE
                           reqline.tran_unit_cost
                     END
                        AS "Cost",
                     reqline.purch_major AS "Major Class",
                     reqline.purch_minor AS "Minor Class",
                     minorcl.description AS "Description",
                     reqline.buyer AS "Line Buyer",
                     reqline.description AS "Item Description",
                     CASE reqline.r_status
                        WHEN 0 THEN 'Unreleased'
                        WHEN 1 THEN 'Released'
                        WHEN 8 THEN 'Rejected'
                        WHEN 9 THEN 'Processed'
                        ELSE 'Unknown Line Status'
                     END
                        AS "Line Status",
                     reqline.closed_fl AS "Closed Flag",
                     reqline.pflow_aprv_lvl AS "Process Flow Approval Level",
                     reqline.approved_fl AS "Approved at All Levels"
              FROM   lawsondeva.reqheader,
                     lawsondeva.rqloc,
                     lawsondeva.requester,
                     lawsondeva.approclev,
                     lawsondeva.reqline,
                     lawsondeva.minorcl
              WHERE  (    (reqheader.company = requester.company)
                      AND (reqheader.requester = requester.requester)
                      AND (reqheader.company = rqloc.company)
                      AND (reqheader.req_location = rqloc.req_location)
                      AND (reqheader.company = reqline.company)
                      AND (reqheader.req_number = reqline.req_number)
                      AND (rqloc.process_level = approclev.proc_level)
                      AND (reqheader.company = approclev.company)
                      AND (    reqline.purch_major = minorcl.major_class
                           AND reqline.purch_minor = minorcl.minor_class
                           AND minorcl.class_type = 'P'))
              ORDER BY reqheader.creation_date, reqheader.req_number, reqline.line_nbr

              Jeff - State of NH
              Tim Cochrane
              Veteran Member
              Posts: 154
              Veteran Member
                Jeff,

                What we do is create a application side table, which is a view of the logan tables (WFWORKUNIT, WFWUQUEUE, etc, etc, etc) using a simpler "Select" statement. This enables us to see all info for all actions (we initiate ~8000 new workunits daily) Here's an example of one I've created of the WFWORKUNIT view:

                CREATE VIEW ZVWORKUNIT(WORKUNIT, PRODUCT, DATA_AREA,
                OBJECT_NAME, KEY_STRING, SERVICE, WF_STATUS, WORK_USER_ID,
                START_DATE, START_TIME, WORK_TITLE) AS
                (
                SELECT WORKUNIT, PRODUCT, DATA_AREA, OBJECT_NAME, KEY_STRING,
                SERVICE, WF_STATUS, WF_RM_ID, START_DATE, START_TIME,
                WORK_TITLE)
                FROM LPELHCA.WFWORKUNIT) ;

                We query this view, among others, in a app batch program that looks for all workunits where status=2 (Inprogress). For any found, we query the WFWUQUEUE view, which again is a simple "get everything" type of select statement, to find the current Inbasket and previous approvers. The batch program uses all the info to write a report that shows:
                Workunit, Action, Date/Time workunit started, current inbasket by user's name, previous approvals by name, time arrived in all inbaskets and elapsed time in all inbaskets.

                Since this is an ad-hoc program, users run this multiple times throughout the day to see where actions are in the approval process.

                Hope this helps
                Tim Cochrane - Principal LM/IPA Consultant
                Gary Davies
                Veteran Member
                Posts: 248
                Veteran Member

                  If you wanted to narrow the view down to Req's only you could look at the records where the field SERVICE = "Req Approval" in WFWORKUNIT. 

                  Jeff
                  Advanced Member
                  Posts: 30
                  Advanced Member
                    Thank you to all that posted replies. We in NH are new to Lawson and are still figuring out on how to get things done and who will do what. I have found this forum to be very responsive each and every time I have posted to it.

                    Cheers!

                    Jeff Wells - State of NH
                    jrbledsoe001
                    Veteran Member
                    Posts: 91
                    Veteran Member
                      Hi Jeff,

                      I was working for Ciber a year a so ago when they were doing your implementation. I was on the west coast and I never got to work on your account. I'm really happy to hear that you are up and running on Lawson. Congratulations that you found this forum. Here is my contact information if you want to network. I'm finance and technical working in Healthcare for Perot Systems Corp. I'm just learning PF and LBI.

                      Joanna.Bledsoe@jhsmh.org IM Yahoo jrbledsoe001@yahoo.com.