- 论坛徽章:
- 0
|
1,直接用CALL PGM(DHCLIB/IN01) PARM(X'F0000000005F' X'F1111111115F' 'DDDDD' 'FFFFF')数据能够插入到物理文件;
2,使用java程序调用IN01,JAVA程序执行到 if(pgm.run())就没有反应了。
请多指教,thanks!
PF:
Columns . . . : 1 71 Edit DHCLIB/QDDSSRC
SEU==> PF001
FMT PF .....A..........T.Name++++++RLen++TDpB......Functions++++++++++++++++++
*************** Beginning of data *************************************
0011.00 UNIQUE
0013.00 R PF001R TEXT('PF001')
0014.00 PFP1 10P 0 TEXT('PF001 P1')
0018.00 PFP2 10P 0 TEXT('PF001 P2')
0026.00 PFSTR1 50A TEXT('PF001 STR1')
0031.00 PFSTR2 50A TEXT('PF001 STR2')
0035.00 K PFP1
****************** End of data ***************************************
RPG:
Columns . . . : 6 76 Edit DHCLIB/QRPGLESRC
SEU==> INSERT01
FMT FX FFilename++IPEASF.....L.....A.Device+.Keywords+++++++++++++++++++++++++
*************** Beginning of data *************************************
0005.00 FPF001 O E DISK
0006.01 DP1 S 10P 0
0006.02 DP2 S 10P 0
0006.03 DA1 S 50A
0006.04 DA2 S 50A
0007.00 C *entry PLIST
0008.00 C PARM P1
0009.00 C PARM P2
0011.00 C PARM A1
0012.00 C PARM A2
0018.00 C MOVE P1 PFP1
0019.00 C MOVE P2 PFP2
0020.00 C MOVE A1 PFSTR1
0021.00 C MOVE A2 PFSTR2
0022.00 C WRITE PF001R
0023.00 C SETON LR
JAVA:
package rpgtest;
import java.math.*;
import com.ibm.as400.access.AS400;
import com.ibm.as400.access.ProgramCall;
import com.ibm.as400.access.AS400Text;
import com.ibm.as400.access.AS400PackedDecimal;
import com.ibm.as400.access.ProgramParameter;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class In01 {
private AS400 as400;
private ProgramCall pgm;
private String progname = "/QSYS.LIB/DHCLIB.LIB/IN01.PGM";
public In01() {
}
/**
* Application entry point.
*
* @param args String[]
*/
public void connectDPC(String system,String user,String password){
as400=new AS400(system,user,password);
try
{
System.out.println("开始连接远程服务!");
as400.connectService(AS400.COMMAND);
System.out.println("远程服务连接成功!");
}
catch(Exception e)
{
System.out.println("连接AS/400服务失败!");
System.exit(0);
}
//建立远程程序对象
pgm=new ProgramCall(as400);
//设置参数,并转换为AS/400格式
ProgramParameter[] parmlist = new ProgramParameter[4];
AS400PackedDecimal p1 = new AS400PackedDecimal(10,0);
parmlist[0] = new ProgramParameter(p1.toBytes(new BigDecimal(1100000019)),10);
AS400PackedDecimal p2 = new AS400PackedDecimal(10,0);
parmlist[1] = new ProgramParameter(p2.toBytes(new BigDecimal(1100000019)),10);
AS400Text a1 = new AS400Text(50);
parmlist[2] = new ProgramParameter(a1.toBytes("TEST005"));
AS400Text a2 = new AS400Text(50);
parmlist[3] = new ProgramParameter(a2.toBytes("test005"));
try
{ //将程序路径、参数表与ProgramCall对象捆绑
pgm.setProgram(progname,parmlist);
}
catch(Exception e)
{
System.out.println("设置参数失败!");
}
try
{
System.out.println("开始远程调用!");
if(pgm.run())
{
System.out.println("远程调用成功!");
}
else
{
System.out.println("远程调用失败!");
}
}
catch(Exception e)
{
System.out.println("远程调用异常!");
e.printStackTrace();
}
}
public static void main(String[] args) {
In01 rt=new In01();
rt.connectDPC("192.195.29.110","wuser","demo2pwd");
rt.as400.disconnectAllServices();
}
} |
|