We are having trouble when we try to use Natural sub-p’s with arrays. See the info cut and pasted below. We are getting a NAT6972. We have been advised by the Software AG person to use *Error-TA to return the “real” error.
We do not know what piece to attack first. We use many Natural sub-p’s in our production environment via the Broker TOR object and a few using RPC. This is our first with arrays and have similar ones waiting to be delivered.
I need guidance on using the *error-ta not sure where I need to reference it and guidance on how to properly format the arrays…so that we do not receive the NAT6972.
EntireX 7.1.1 patch level 30
Let me know if I need to provide any other information.
Smiles,
Karen
IDL
Library ‘XXXXX’ Is
Program ‘PRGNAME’ Is
Define Data Parameter
1 #W-USER-ID (A8)
1 #X-DAT (A30)
1 TEST-COUNT (N3) Out
1 TEST-DATA (/100)
2 TST-TY (A4)
2 TST-DT (A8)
2 SUBTEST (A2)
2 SEL-SUBTEST (A1)
2 TST-SCR (N4.2)
2 MAX-SCR (N4.2)
2 CRS-PLCMNTS (A10/1:4)
1 #RETURN-CODE (N4) Out
1 #RETURN-MSG (A60) Out
End-Define
CS Wrapper
#region Groups for LIBRARY ‘XXXXX’, PROGRAM ‘PRGNAME’
public class Prgname
{
public class TestData
{
[SendAs(IdlType.A, Length=4f)]public StringBuilder tstTy;
[SendAs(IdlType.A, Length=8f)]public StringBuilder tstDt;
[SendAs(IdlType.A, Length=2f)]public StringBuilder subtest;
[SendAs(IdlType.A, Length=1f)]public StringBuilder selSubtest;
[SendAs(IdlType.N, preDecimal=4, postDecimal=2)]public decimal tstScr;
[SendAs(IdlType.N, preDecimal=4, postDecimal=2)]public decimal maxScr;
[SendAs(IdlType.A, Length=10f, Dim=4f)]public StringBuilder crsPlcmnts;
}
}
#endregion
#region Method/Function for LIBRARY ‘ORIONWEB’ PROGRAM ‘STAW14N1’
[Program(“STAW14N1”)]
public void testScores(
[SendAs(IdlType.A, Length=8f)][In, Out] ref StringBuilder wUserId,
[SendAs(IdlType.A, Length=30f)][In, Out] ref StringBuilder xDat,
[SendAs(IdlType.N, preDecimal=3, postDecimal=0)][Out] out decimal testCount,
[SendAs(IdlType.Group, Dim=100f)][In, Out] ref EntireX.Wrappers.Student.StudentBasics.Staw14n1.TestData testData,
[SendAs(IdlType.N, preDecimal=4, postDecimal=0)][Out] out decimal returnCode,
[SendAs(IdlType.A, Length=60f)][Out] out StringBuilder returnMsg
)
{
testCount = 0;
returnCode = 0;
returnMsg = new StringBuilder() ;
service.Send(
this.GetType().GetMethod(“TestScores”),
wUserId,
xDat,
new Ref(ref testCount),
testData,
new Ref(ref returnCode),
returnMsg
);
}
#endregion
}
}
Karen Goolishian Luttrell
Artemis Development Team
FCCJ
#EntireX#webMethods#Mainframe-Integration