015300*----------------------------------------------------* 015400101000-BEGIN-HOUSEKEEPING SECTION. 015500*----------------------------------------------------* 015600* This section calls TPStarted to initialize resources 015700* for the local TP, and then it calls MCAllocate to 015800* allocate a conversation with the remote TP. 015900* 016000MOVE NO-SW TO QUIT-SW. 016100* 016200CALL INTRINSIC "TP'STARTED"USING LOCAL-TP-NAME, 016300 TPID, 016400 INTRINSIC-STATUS, 016500 TRACEON. 016600IF INTRINSIC-STATUS ISNOTEQUALTOZERO 016700MOVE YES-SW TO QUIT-SW 016800MOVE INTRINSIC-STATUS-INFO TO TPSTART-RTRNCD 016900DISPLAY STARTED-ERR-MSG,TPSTART-RTRNCD 017000GOTO101099-EXIT. 017100* 017200CALL INTRINSIC "CTRANSLATE"USING TRANSLATE-TO-EBCDIC, 017300 REMOTE-TP-NAME-ASCII, 017400 REMOTE-TP-NAME-EBCDIC, 017500 LENGTH-REMOTE-TP-NAME. 017600IF CCODE << ZERO 017700DISPLAY CTRANSLATE-ERR-MSG, 017800"CCL - REMOTE-TP-NAME NOT TRANSLATED" 017900MOVE YES-SW TO QUIT-SW 018000GOTO101099-EXIT. 018100* 018200CALL INTRINSIC "MCALLOCATE"USING TPID, 018300 SESSION-TYPE, 018400 REMOTE-TP-NAME-EBCDIC, 018500 LENGTH-REMOTE-TP-NAME, 018600 RESOURCE-ID, 018700 INTRINSIC-STATUS. 018800IF INTRINSIC-STATUS ISNOTEQUALTOZERO 018900MOVE YES-SW TO QUIT-SW 019000MOVE INTRINSIC-STATUS-INFO TO ALLOCATE-RTRNCD 019100DISPLAY ALLOCATE-ERR-MSG,ALLOCATE-RTRNCD 019200GOTO101099-EXIT. 019300* 019400PERFORM501000-FULL-SCREEN. 019500101099-EXIT. 019600EXIT. 019700* 019800*----------------------------------------------------* 019900102000-PROCESS-RECORDS SECTION. 020000*----------------------------------------------------* 020100* This section calls SEND-DATA and RECEIVE-DATA. 020200* 020300PERFORM201000-SEND-DATA. 020400* 020500IF QUIT-SW ISEQUALTO YES-SW 020600GOTO102099-EXIT. 020700* 020800PERFORM202000-RECEIVE-DATA. 020900* 021000102099-EXIT. 021100EXIT. 021200* 021300*----------------------------------------------------* 021400103000-END-HOUSEKEEPING SECTION. 021500*----------------------------------------------------* 021600* This section deallocates the conversation and calls 021700* TPEnded to free the resources used by the local TP. 021800* 021900CALL INTRINSIC "MCDEALLOCATE"USING RESOURCE-ID, 022000 DEALLOCATE-TYPE, 022100 INTRINSIC-STATUS. 022200IF INTRINSIC-STATUS ISNOTEQUALTOZERO 022300MOVE INTRINSIC-STATUS-INFO TO DEALLOCATE-RTRNCD 022400DISPLAY DEALLOCATE-ERR-MSG,DEALLOCATE-RTRNCD. 022500* 022600CALL INTRINSIC "TPENDED"USING TPID, 022700 INTRINSIC-STATUS. 022800IF INTRINSIC-STATUS ISNOTEQUALTOZERO 022900MOVE INTRINSIC-STATUS-INFO TO ENDED-RTRNCD 023000DISPLAY ENDED-ERR-MSG,ENDED-RTRNCD. 023100* 023200103099-EXIT. 023300EXIT. 023400*
023500*----------------------------------------------------* 023600201000-SEND-DATA SECTION. 023700*----------------------------------------------------* 023800* This section translates the data received from the 023900* user's screen into EBCDIC and sends it to the remote TP. 024000* 024100CALL INTRINSIC "CTRANSLATE"USING TRANSLATE-TO-EBCDIC, 024200 TRANS-DATA, 024300 TRANS-DATA, 024400 TRANS-LENGTH. 024500IF CCODE << ZERO 024600DISPLAY CTRANSLATE-ERR-MSG, 024700"CCL - TRANS-DATA NOT TRANSLATED" 024800MOVE YES-SW TO QUIT-SW 024900GOTO201099-EXIT. 025000* 025100CALL INTRINSIC "MCSENDDATA"USING RESOURCE-ID, 025200 TRANS-DATA, 025300 TRANS-LENGTH, 025400 REQ-TO-SEND-REC, 025500 INTRINSIC-STATUS. 025600IF INTRINSIC-STATUS ISNOTEQUALTOZERO 025700MOVE YES-SW TO QUIT-SW 025800MOVE INTRINSIC-STATUS-INFO TO SENDDATA-RTRNCD 025900DISPLAY SENDDATA-ERR-MSG,SENDDATA-RTRNCD. 026000* 026100201099-EXIT. 026200EXIT. 026300* 026400*----------------------------------------------------* 026500202000-RECEIVE-DATA SECTION. 026600*----------------------------------------------------* 026700* This section calls MCRcvAndWait twice: once to 026800* receive a data record from the remote TP and once 026900* to receive the instruction to change to Send state. 027000* If this section receives a complete data record, 027100* it calls CTranslate to translate it to ASCII. 027200*
031300CALL INTRINSIC "CTRANSLATE"USING TRANSLATE-TO-ASCII, 031400 MASTER-DATA, 031500 MASTER-DATA, 031600 RECEIVE-LENGTH. 031700IF CCODE << ZERO 031800DISPLAY CTRANSLATE-ERR-MSG, 031900"CCL - MASTER-DATA NOT TRANSLATED" 032000MOVE YES-SW TO QUIT-SW 032100GOTO202099-EXIT. 032200* 032300IF RECEIVE-LENGTH ISEQUALTO FULL-RECORD 032400PERFORM301000-DISPLAY-ACCEPTANCE 032500ELSE 032600PERFORM302000-DISPLAY-ERROR-MESSAGE. 032700* 032800202099-EXIT. 032900EXIT. 033000* 033100*----------------------------------------------------* 033200301000-DISPLAY-ACCEPTANCE SECTION. 033300*----------------------------------------------------* 033400* This section evaluates the Risk Code received from 033500* the remote TP to determine whether to approve or deny 033600* credit, and then it writes a message to the user's terminal. 033700* 033800IF RISK-CODE-MASTER ISLESSTHAN ACCEPT-CODE 033900DISPLAY"CREDIT DENIED" 034000ELSE 034100DISPLAY"CREDIT APPROVED". 034200* 034300PERFORM401000-QUIT-SCREEN. 034400* 034500301099-EXIT. 034600EXIT. 034700*
034800*----------------------------------------------------* 034900302000-DISPLAY-ERROR-MESSAGE SECTION. 035000*----------------------------------------------------* 035100* This section evaluates the errorcode returned by the 035200* remote TP and writes an error message to the user's 035300* terminal. The remote TP can return any of 3 error codes: 035400* 001 - The SS# is not in the database. 035500* 002 - The SS# is in the database, but the name does 035600* not match the name sent by the HP 3000. 035700* 003 - Miscellaneous system errors. 035800* Error codes 001 and 002 cause this section to call 035900* QUIT-SCREEN. Error code 003 causes this section to 036000* set QUIT_SW to YES_SW. 036100* 036200IF ERROR-CODE ISEQUALTO SYSTEM-ERROR-CD 036300DISPLAY SYSTEM-ERROR-CD 036400MOVE YES-SW TO QUIT-SW 036500GOTO302099-EXIT. 036600* 036700IF ERROR-CODE ISEQUALTO SOCSEC-ERROR-CD 036800DISPLAY"SS# not on file - CREDIT DENIED" 036900ELSE 037000DISPLAY"Invalid Name". 037100* 037200PERFORM401000-QUIT-SCREEN. 037300* 037400302099-EXIT. 037500EXIT. 037600*
037700*----------------------------------------------------* 037800401000-QUIT-SCREEN SECTION. 037900*----------------------------------------------------* 038000* This section asks the user if he or she is ready 038100* to quit. If the user responds 'Y', this section 038200* changes QUIT_SW to YES_SW. 038300* 038400DISPLAY"READY TO QUIT (Y/N)?". 038500ACCEPT QUIT-SW FREE. 038600* 038700IF QUIT-SW ISNOTEQUALTO YES-SW 038800PERFORM501000-FULL-SCREEN. 038900* 039000401099-EXIT. 039100EXIT. 039200*
039300*----------------------------------------------------* 039400501000-FULL-SCREEN SECTION. 039500*----------------------------------------------------* 039600* This section prompts the user for data and 039700* receives the data from the terminal. 039800* 039900MOVESPACETO TRANS-DATA. 040000MOVESPACESTO MASTER-DATA. 040100* 040200DISPLAY CONSOLE-HEADING. 040300* 040400DISPLAY"SOCSEC # :". 040500PERFORM601000-ACCEPT-SOCSEC 040600UNTIL SOCSEC-TRANS ISNUMERIC. 040700* 040800DISPLAY"LASTNAME :". 040900ACCEPT LAST-NAME-TRANS FREE. 041000* 041100DISPLAY"FIRSTNAME :". 041200ACCEPT FIRST-NAME-TRANS FREE. 041300* 041400DISPLAY"MI :". 041500ACCEPT MI-NAME-TRANS FREE. 041600* 041700501099-EXIT. 041800EXIT. 041900* 042000*----------------------------------------------------* 042100601000-ACCEPT-SOCSEC SECTION. 042200*----------------------------------------------------* 042300* This section prompts the user for a social security 042400* number and accepts it from the terminal. 042500* 042600ACCEPT SOCSEC-TRANS FREE. 042700* 042800IF SOCSEC-TRANS ISEQUALTOSPACES 042900DISPLAY"SOCSEC # MUST BE NUMERIC" 043000DISPLAY"SOCSEC # :" 043100GOTO601099-EXIT. 043200* 043300IF SOCSEC-TRANS ISNOTNUMERIC 043400DISPLAY"SOCSEC # MUST BE NUMERIC" 043500DISPLAY"SOCSEC # :". 043600* 043700601099-EXIT. 043800EXIT.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.