Connection issues with PCOC On-line Exam
Problem:
CP reporting that students when following their exam URL, are being forwarded to p9000.aspx without and error notification/message.
Client started using a value on the PCOCDS Web Service, when requesting a exam token. The value in the "OrganizationOperatorId" is accepted by the web service as a string byte(100), so the web call will accept the value that was sent, "50520405787". See sample SOAPUI POST for the PCOCDS Web Service.
When the student uses the generated URL to take the exam, the On-Line code reads this value from the database and tries to assign it to an exam property that is of type integer, this is causing an error because the maximum integer value is 2147483647.
The CP asked if using this number for the "OPERATOR_CARD_NUMBER_TXT" in the PCOCDS Upload would cause an issue and the answer is no. In the Upload program this field is a string byte(200) and the same in the database table 'Person'.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pcoc="https://wwwapps.tc.gc.ca/saf-sec-sur/4/PCOCWS-SWCCEP">
<soapenv:Header/>
<soapenv:Body>
<pcoc:Authorize>
<!--Optional:-->
<pcoc:request>
<!--Optional:-->
<pcoc:Username>DABCAPI20</pcoc:Username>
<!--Optional:-->
<pcoc:Password>q!BGT322</pcoc:Password>
<!--Optional:-->
<pcoc:ReturnUrl>https://www.google.com?</pcoc:ReturnUrl>
<!--Optional:-->
<pcoc:SAIK>TC2021-505-001-WSCE001B</pcoc:SAIK>
<!--Optional:-->
<pcoc:OrganizationOperatorId>50520405787</pcoc:OrganizationOperatorId>
<!--Optional:-->
<pcoc:OperatorInformation>
<!--Optional:-->
<pcoc:FirstName>Mike23121</pcoc:FirstName>
<!--Optional:-->
<pcoc:LastName>Grainger</pcoc:LastName>
<!--Optional:-->
<pcoc:Email>mgrainger123@gmail.com</pcoc:Email>
<pcoc:CountryCode>CA</pcoc:CountryCode>
<!--Optional:-->
<pcoc:Address>123 Any Lane</pcoc:Address>
<!--Optional:-->
<pcoc:City>Ottawa</pcoc:City>
<!--Optional:-->
<pcoc:PostalZipCode>K0A 1K0</pcoc:PostalZipCode>
<pcoc:ProvinceCd>ON</pcoc:ProvinceCd>
<pcoc:GenderCode>MALE</pcoc:GenderCode>
<pcoc:DateOfBirth>1960-06-13</pcoc:DateOfBirth>
<!--Optional:-->
<pcoc:MasterSaik>TC2021-505-001-WSCE001B</pcoc:MasterSaik>
</pcoc:OperatorInformation>
<pcoc:TestingLanguageCd>ENGLISH</pcoc:TestingLanguageCd>
</pcoc:request>
</pcoc:Authorize>
</soapenv:Body>
</soapenv:Envelope>
Solution:
The CP has been advised of the issue an will refrain from using this large a value moving forward.
The error values that had been submitted were updated to 0 allowing the students to use the provided URL and complete their exam.
SELECT
o.organization_name_txt,
egt.*
FROM
lm109_exam_grp_token egt
INNER JOIN tm110_pcocto_operator po ON egt.pcocto_operator_cd = po.pcocto_operator_cd
INNER JOIN pcocds.tc006_organization o ON o.organization_id = po.current_organization_id
WHERE
length(egt.organization_operator_id) < length(2147483647)
ORDER BY
egt.date_created_dte;
UPDATE lm109_exam_grp_token egt
SET
egt.organization_operator_id = 0
WHERE
length(egt.organization_operator_id) > length(2147483647);
COMMIT;