× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



I'm not the most Java saavy person but in essence, your assumption is
correct.  Service programs are simliar to jar files.  Below is the code
for a simple service program.

     h nomain
     h option(*nodebugio)

     * Files Used
     FCkEmpLMs  IF   E           K Disk    UsrOpn
     FCkClassF  IF   E           K Disk    UsrOpn

     * Copybooks
      /copy qcopysrc,KR0056PR

     * Internal Non-Exported Procedures
     DInitialize       PR

     * Global Variables
     D Files_Opened    S               n   Inz(*Off)
     D CompanyNumber   c                   Const(01)

     * Get Pay Period Procedure
     PGetPayPeriod     B                   Export
     DGetPayPeriod     PI
     D  StartDate                      D
     D  EndDate                        D
     D  Success                        n

     * Local Variables
     D Find_EmpNo      S              9s 0
     D SQL$            S           3000a   Varying

      /copy qcopysrc,sqloptions

     * Procedure Code

     * Find An Employee With Unposted Time
     c/exec sql
     c+ Select Max(TiEmpN) Into :Find_EmpNo From CkTimeFl Where
TiPHst<>'P'
     c/end-exec
      /free

         //Open Files If Not Open...
         Initialize();

         //Find The Employee's Record
         Chain (CompanyNumber:Find_EmpNo) CkEmpLMs;
         If Not %Found;
           Success=*Off;
           Return;
         EndIf;

         //Get The Current Pay Period Date From The Employee's Pay
Period Rule
         Chain (EETCod) CkClassF;
         If Not %Found;
           Success=*Off;
           Return;
         EndIf;

         //Return The Pay Period Dates
         StartDate=%Date(CFFDt1:*ISO);
         EndDate=%Date(CFTDt1:*ISO);
         Success=*On;

         Return;
      /end-free
     PGetPayPeriod     E

     * Procedure To Open Files & Initialize Variables
     PInitialize       B
     DInitialize       PI
      /free
         If (Files_Opened);
           Return;
         EndIf;

         Open CkEmpLMs;
         Open CkClassF;
         Files_Opened=*On;
      /end-free
     PInitialize       E

     * Procedure To Return Employee Record Data
     PGetEmployeeData  B                   Export
     DGetEmployeeData  PI
     D  GetEmpNumber                  9s 0 Const
     D  Name                         30a
     D  Branch                       10a
     D  Dept                         10a
     D  CoID                         10a
     D  Success                        n

     * Procedure Code
      /free

         //Ensure That The Files Are Open
         Initialize();

         Chain (CompanyNumber:GetEmpNumber) CkEmpLMs;
         If Not %Found;
            Success=*Off;
         Else;
            Name=EEName;
            Branch=EESec3;
            Dept=EESec4;
            CoID=EESec7;
            Success=*On;
         EndIf;
      /end-free
     PGetEmployeeData  E

     * Check For Other Productive
     PCheckForOT       B                   Export
     DCheckForOT       PI            10i 0
     D PayCodes                       5a   Dim(10) Const
     D Element         s             10i 0
      /free
        Element=%LookUp('OTHPR':PayCodes);
        Return Element;
      /end-free
     PCheckForOT       E

     * Check For Productive
     PCheckForPROD     B                   Export
     DCheckForPROD     PI            10i 0
     D PayCodes                       5a   Dim(10) Const
     D Element         s             10i 0
      /free
        Element=%LookUp('PROD':PayCodes);
        Return Element;
      /end-free
     PCheckForPROD     E

     * Get OT Hours
     PGetOTHours       B                   Export
     DGetOTHours       PI             5s 2
     D HoursArray                     5s 2 Dim(10) Const
     D Element                       10i 0 Const
      /free
        Return HoursArray(Element);
      /end-free
     PGetOTHours       E

     * Get PROD Hours
     PGetPrHours       B                   Export
     DGetPrHours       PI             5s 2
     D HoursArray                     5s 2 Dim(10) Const
     D Element                       10i 0 Const
      /free
        Return HoursArray(Element);
      /end-free
     PGetPrHours       E

     * Total Other Productive Hours
     PTotalOTHours     B                   Export
     DTotalOTHours     PI             6s 2
     D PayPeriodOT                    5s 2 Dim(14) Const
      /free
         Return %XFoot(PayPeriodOT);
      /end-free
     PTotalOTHours     E

     * Total Productive Hours
     PTotalPrHours     B                   Export
     DTotalPrHours     PI             6s 2
     D PayPeriodOT                    5s 2 Dim(14) Const
      /free
         Return %XFoot(PayPeriodOT);
      /end-free
     PTotalPrHours     E

     * Close Application Procedure
     PClose_App        B                   Export
     DClose_App        PI
      /free
         If %Open(CkEmpLMs);
           Close CkEmpLMs;
         EndIf;
         If %Open(CkClassF);
           Close CkClassF;
         EndIf;

         Files_Opened=*Off;
      /end-free
     PClose_App        E 

Basically a service program consists of a module or modules(similar to
the java class).  There is one source member per module.  A module can
consist of a single procedure or many procedures (similar to java
functions).  To create the service program you compile your source code
as type *MODULE, then you execute the CRTSRVPGM command listing the
modules (class if you prefer) to put into the service program(jar).
Additionally you can use binding directories & binding source to
function similar to a manifest.  Hope this is clear as mud & that I
haven't misrepresented anything...if so...blame it on Thursday...which
is typically all meetings for me LOL


Thanks,
Tommy Holden


-----Original Message-----
From: rpg400-l-bounces+tommy.holden=hcahealthcare.com@xxxxxxxxxxxx
[mailto:rpg400-l-bounces+tommy.holden=hcahealthcare.com@xxxxxxxxxxxx] On
Behalf Of Jake M
Sent: Thursday, March 30, 2006 9:07 AM
To: rpg400-l@xxxxxxxxxxxx
Subject: Service Program Vs Jar File.

I am a RPG newbie. So, here is a naive question. Are Service Programs
same
as Jar Files in Java, Or am I totally wrong? I create my  .jar files as
a
conglomeration of several .class files and then just that in all my
.java
code. I am looking for a simple example to create a service program and
use
that service program in RPGLE source member.

Thanks in advance,

Jake.

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.