parameters for buildHeader() method?

Our site uses “EntireX RPC for Java Stub Version=7.3.3, Patch Level=000” for integration between java apps and natural apps. I am a java programmer. I have recieved a generated java class from the natural programmers, which extends com.softwareag.entirex.aci.RPCService. This class has a method named buildHeader. What are the parameters of the buildHeader method? Specifically, am I correct in my guess that the 3rd parameter is bytes in and the 4th parameter is bytes out? If so, are these values directly related to the directional attributes that the natural team put in the module?

buildHeader (V2FCWZ01_FORMAT, “50”, 28955, 0, “V2FCWZ01”, true, 1110, true, false, 2020);

Rob, this is one of several undocumented methods which are used only internally.

Is there are a particular reason why you are asking this?

The error message is

Broker Error 1014 6974: Natural RPC Server returns: V2FCWZ01 9999 NAT6974 Conversion error on Server, reason 4 ,000., NE=01,V2FCWZ01999901O

Here is another question …

Natural module V2FFRA01 works and V2FCWZ01 returns the error above.

Compare the generated code from V2FFRA01 and V2FCWZ01. Notice how V2FFRA01 is marshaling spaces and zeros and also checks for compression. V2FCWZ01, on the other hand, is marshaling actual data and that this data is for fields that I am not passing to Natural. Why the difference?

All the parameters in both classes have read/write properties in the generated java classes, so I suspect that the natural team made all of the parameters IN/OUT for both classes.

Also, I set compression on for both java classes.

  public void v2ffra01() throws BrokerException {

        buildHeader (V2FFRA01_FORMAT, "62", 152, 26483, "V2FFRA01", true, 1110, true, false, 2020);

if (v2ffra01Pdf00098 == null) v2ffra01Pdf00098 = new V2ffra01Pdf00098();
if ( getVersion() >= 2000 ) {
v2ffra01Pdf00098.add();
} else {
super.marshal.addDataA(v2ffra01Pdf00098.id_user, 8);
super.marshal.addDataN(v2ffra01Pdf00098.error_number, 4, 0);
super.marshal.addDataA(v2ffra01Pdf00098.error_text, 79);
super.marshal.addDataA(v2ffra01Pdf00098.ind_ndi, 1);
}
if (v2ffra01W_parm1 == null) v2ffra01W_parm1 = new V2ffra01W_parm1();
if ( getVersion() >= 2000 ) {
v2ffra01W_parm1.add();
} else {
super.marshal.addDataA(v2ffra01W_parm1.id_case, 12);
super.marshal.addDataA(v2ffra01W_parm1.ivd_flag, 1);
super.marshal.addDataA(v2ffra01W_parm1.nivd_flag, 1);
}
if (!super.compression) super.marshal.addDataN(new BigDecimal(0), 2, 0);
for (int i0=0; i0<20; i0++) if (!super.compression) super.marshal.addDataA(" “, 17);
for (int i0=0; i0<20; i0++) if (!super.compression) super.marshal.addDataA(” “, 8);
for (int i0=0; i0<20; i0++) if (!super.compression) super.marshal.addDataA(” “, 3);
for (int i0=0; i0<20; i0++) if (!super.compression) super.marshal.addDataA(” “, 3);
for (int i0=0; i0<20; i0++) if (!super.compression) super.marshal.addDataA(” ", 8);
for (int i0=0; i0<20>= 2000 ) {
v2fcwz01Pdf00098.add();
} else {
super.marshal.addDataA(v2fcwz01Pdf00098.id_user, 8);
super.marshal.addDataN(v2fcwz01Pdf00098.error_number, 4, 0);
super.marshal.addDataA(v2fcwz01Pdf00098.error_text, 79);
super.marshal.addDataA(v2fcwz01Pdf00098.ind_ndi, 1);
}
if (v2fcwz01W_parm1 == null) v2fcwz01W_parm1 = new V2fcwz01W_parm1();
if ( getVersion() >= 2000 ) {
v2fcwz01W_parm1.add();
} else {
super.marshal.addDataA(v2fcwz01W_parm1.id_case, 12);
super.marshal.addDataA(v2fcwz01W_parm1.ivd_flag, 1);
super.marshal.addDataA(v2fcwz01W_parm1.nivd_flag, 1);
}
if (v2fcwz01W_parm2 == null) v2fcwz01W_parm2 = new V2fcwz01W_parm2();
if ( getVersion() >= 2000 ) {
v2fcwz01W_parm2.add();
} else {
super.marshal.addDataN(v2fcwz01W_parm2.co_counter, 2, 0);
if (v2fcwz01W_parm2.co_tbl == null) v2fcwz01W_parm2.co_tbl = new V2fcwz01W_parm2Co_tbl[20];
for (int i0=0; i0<20; i0++) if (v2fcwz01W_parm2.co_tbl[i0] == null) v2fcwz01W_parm2.co_tbl[i0] = new V2fcwz01W_parm2Co_tbl();
for (int i0=0; i0<20; i0++) super.marshal.addDataA(v2fcwz01W_parm2.co_tbl[i0].id_co, 17);
for (int i0=0; i0<20; i0++) super.marshal.addDataA(v2fcwz01W_parm2.co_tbl[i0].date_signed, 8);
for (int i0=0; i0<20; i0++) super.marshal.addDataA(v2fcwz01W_parm2.co_tbl[i0].cd_co_type, 3);
for (int i0=0; i0<20; i0++) super.marshal.addDataA(v2fcwz01W_parm2.co_tbl[i0].cd_co_mthd, 3);
for (int i0=0; i0<20; i0++) super.marshal.addDataA(v2fcwz01W_parm2.co_tbl[i0].date_begin, 8);

a NAT6974 reason 4 error is usually one of two causes: the Natural RPC Server MAXBUFF parameter is too small or the Java wrapper is out of date (that is, program V2FCWZ01 now has different parameters than it was generated with).

You need to ask your Natural programmers to check on these two conditions.