Test Id Security. Unless you set the test id 
security for a user you can not load or post the test scores from a flat 
file.
Here's the location to set 
that.
Navigation : Root --> 
Set Up SACR --> Security --> Secure Student Administration --> User ID 
--> Test ID Security.
Code extending 
the SOA framework to chunck a container based message when the message 
size exceeds Integration Broker max message size limit.
import 
SAD_CRM_INTEGRATION:SAD_TEST_POST_CRM:SAD_TEST_POST_CRM_AP;
Component 
Rowset &rsSadHeaderCrm, &rsSadApSus, &rsSccNameValue;
Component 
SAD_CRM_INTEGRATION:SAD_TEST_POST_CRM:SAD_TEST_POST_CRM_AP 
&oSadTestPostCRMAP;
Local number &i, &j;
Local Message 
&response;
&oSadTestPostCRMAP = create 
SAD_CRM_INTEGRATION:SAD_TEST_POST_CRM:SAD_TEST_POST_CRM_AP( Null, "SAD", 
"SAD_TEST_POST_CRM_AP");
&oSadTestPostCRMAP.rsSAD_HEADER_CRM = 
&rsSadHeaderCrm;
&oSadTestPostCRMAP.rsSAD_TEST_POST_AP_PART = 
&rsSadApSus;
&oSadTestPostCRMAP.rsSAD_TEST_POST_NAME_VAL_PART = 
&rsSccNameValue;
&response = 
&oSadTestPostCRMAP.execute();
If &oSadTestPostCRMAP.moduleError = 
Null Then
Exit (1); /* exit (1) to skip roll back action 
*/
Else
MessageBox(%MsgStyle_OK, "", 99999, 999, "*** Post to CRM Integration Error 
***");
MessageBox(%MsgStyle_OK, "", 99999, 999, 
&oSadTestPostCRMAP.moduleError.ToString( False));
If 
(&oSadTestPostCRMAP.moduleError.MessageSetNumber = 14099 
And
&oSadTestPostCRMAP.moduleError.MessageNumber = 7) 
Then
MessageBox(%MsgStyle_OK, "", 99999, 999, "Attempting Secondary Burst of 100 
transactions");
Local Rowset &rs100SadHeaderCrm, 
&rs100SadApSus, &rs100SadBioPrsSus, &rsSadBioPrsSus;
Local number 
&numberOfRowSet;
&rs100SadHeaderCrm = 
CreateRowset(&rsSadHeaderCrm);
&rs100SadApSus = 
CreateRowset(&rsSadApSus);
&rsSadHeaderCrm(1).CopyTo(&rs100SadHeaderCrm(1));
&rsSadBioPrsSus 
= 
&rsSadHeaderCrm(1).GetRowset(Scroll.SAD_BIO_PRS_SUS);
&rs100SadBioPrsSus 
= &rs100SadHeaderCrm(1).GetRowset(Scroll.SAD_BIO_PRS_SUS);
&i 
= 1;
While &i <= &rsSadBioPrsSus.ActiveRowCount
&j = 
1;
&rs100SadBioPrsSus.Flush();
&rs100SadApSus.Flush();
For 
&j = 1 To 2
If &i > &rsSadBioPrsSus.ActiveRowCount 
Then
Break;
End-If;
If &j <> 1 
Then
&rs100SadBioPrsSus.InsertRow(&rs100SadBioPrsSus.ActiveRowCount);
&rs100SadApSus.InsertRow(&rs100SadApSus.ActiveRowCount);
End-If;
&rsSadBioPrsSus(&i).CopyTo(&rs100SadBioPrsSus(&rs100SadBioPrsSus.ActiveRowCount));
&numberOfRowSet 
= 1;
While &numberOfRowSet <= 
&rsSadBioPrsSus(&i).ChildCount
&rsSadBioPrsSus(&i).GetRowset(&numberOfRowSet).CopyTo(&rs100SadBioPrsSus(&rs100SadBioPrsSus.ActiveRowCount).GetRowset(&numberOfRowSet));
&numberOfRowSet 
= &numberOfRowSet + 
1;
End-While;
&rsSadApSus(&i).CopyTo(&rs100SadApSus(&rs100SadApSus.ActiveRowCount));
&numberOfRowSet 
= 1;
While &numberOfRowSet <= 
&rsSadApSus(&i).ChildCount
&rsSadApSus(&i).GetRowset(&numberOfRowSet).CopyTo(&rs100SadApSus(&rs100SadApSus.ActiveRowCount).GetRowset(&numberOfRowSet));
&numberOfRowSet 
= &numberOfRowSet + 1;
End-While;
&i = &i + 
1;
End-For;
&oSadTestPostCRMAP.rsSAD_HEADER_CRM = 
&rs100SadHeaderCrm;
&oSadTestPostCRMAP.rsSAD_TEST_POST_AP_PART = 
&rs100SadApSus;
&oSadTestPostCRMAP.rsSAD_TEST_POST_NAME_VAL_PART = 
&rsSccNameValue;
&oSadTestPostCRMAP.moduleError = 
Null;
&response = &oSadTestPostCRMAP.execute();
If 
&oSadTestPostCRMAP.moduleError <> Null 
And
(&oSadTestPostCRMAP.moduleError.MessageSetNumber = 14099 
And
&oSadTestPostCRMAP.moduleError.MessageNumber = 7) 
Then
MessageBox(%MsgStyle_OK, "", 99999, 999, "*** Secondary Burst too large ***");
Exit (0); /* Return 0 to call Rollback 
Action */
End-If;
End-While;
End-If;
End-If;
 
No comments:
Post a Comment