home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rxapfd.zip / rxappcfd.INF (.txt) < prev    next >
OS/2 Help File  |  1993-11-18  |  18KB  |  754 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. About RXAPPCFD ΓòÉΓòÉΓòÉ
  3.  
  4. RXAPPCFD allows Rexx programs to use the APPC programming interface provided by 
  5. CM/2 v1.1, which includes support for full-duplex conversations. This has been 
  6. developed with a Beta version of CM/2 v1.1. 
  7.  
  8. Thanks to Sam Detweiler after whose "RXAPPC" function package I modeled 
  9. RXAPPCFD. 
  10.  
  11.  
  12.   Author:        Dave Boll
  13.                  (CompuServe = 74170,2016)
  14.                  IBMMAIL(USFMCFKF)
  15.   Release Date:  18 November, 1993
  16.   Version:       1.1
  17.  
  18.   Copyright 1993 Dave Boll
  19.  
  20.  
  21. ΓòÉΓòÉΓòÉ 2. Release Notes ΓòÉΓòÉΓòÉ
  22.  
  23. This is the second release (v1.1).  This function package works on ES Comm. 
  24. Mgr. as well as on previous versions of CM/2 (v1.0), although full-duplex 
  25. conversations will only be supported on CM/2 v1.1 and above. 
  26.  
  27. New in version 1.1:
  28.  
  29.   - The character set specified by the "Set_Internal_Conversion_Charset"
  30.     function now applies to internal conversion of USERID and PASSWORD values.
  31.     (thanks to Thomas Theurer for suggesting this)
  32.  
  33.  
  34. ΓòÉΓòÉΓòÉ 3. General Information ΓòÉΓòÉΓòÉ
  35.  
  36. General information about RXAPPCFD. 
  37.  
  38.  
  39. ΓòÉΓòÉΓòÉ 3.1. How to Use It ΓòÉΓòÉΓòÉ
  40.  
  41. How to register the functions: 
  42.  
  43. In order to use the functions, you have to register them with Rexx like this:
  44.  
  45.   call rxfuncadd 'rxappcfd','rxappcfd','rxappcfd'
  46.  
  47. The .DLL "rxappcfd.dll" must be in your libpath.
  48.  
  49.  
  50. ΓòÉΓòÉΓòÉ 3.2. Return codes ΓòÉΓòÉΓòÉ
  51.  
  52. Return codes for all verbs are as such: 
  53.  
  54.  
  55.   appcrc = rxappcfd(verb,...)
  56.  
  57. where
  58.  
  59.   appcrc = 1 to 4 blank delimited values:
  60.  
  61.            1) primary return code
  62.            2) secondary return code (if non-zero and (1) is non-zero)
  63.            3) sense code (if non-zero, on allocate/sendconversation only)
  64.            4) API duration in milliseconds (only if you ask for timing)
  65.  
  66.  
  67. ΓòÉΓòÉΓòÉ 3.3. Case Sensitivity of Parameters ΓòÉΓòÉΓòÉ
  68.  
  69. Some parameters are case sensitive, some are not. 
  70.  
  71. - The case of the verb parameter (first argument) is not important.
  72. - The case of the conversation-type (usually second argument) is not
  73.   important.
  74.  
  75.  
  76. ΓòÉΓòÉΓòÉ 3.4. Multi-threaded applications ΓòÉΓòÉΓòÉ
  77.  
  78. RXAPPCFD supports multi-threaded Rexx applications (i.e. may be called by Rexx 
  79. programs running on multiple threads of the same process). 
  80.  
  81. Settings like "Internal_Conversion_Charset", "Autoconvert", and "Call_Timing" 
  82. are unique to a thread (including initial default values). 
  83.  
  84. This means that if thread "n" uses RXAPPCFD, then ends, and then another thread 
  85. of the same thread-id ("n") is started in that process, this second instance of 
  86. thread "n" will inherit the settings from the first instance (i.e. the default 
  87. settings may no longer be in effect). 
  88.  
  89.  
  90. ΓòÉΓòÉΓòÉ 4. RXAPPCFD service functions ΓòÉΓòÉΓòÉ
  91.  
  92. Functions specific to RXAPPCFD 
  93.  
  94.  
  95. ΓòÉΓòÉΓòÉ 4.1. Set_Internal_Conversion_Charset ΓòÉΓòÉΓòÉ
  96.  
  97. Set_Internal_Conversion_Charset causes all subsequent internal conversions (of 
  98. Tp_Name, Userid, Password) to use the specified character set. 
  99.  
  100. Syntax:
  101.  
  102.   currcs = rxappcfd('Set_Internal_Conversion_Charset',charset)
  103.  
  104. where:
  105.  
  106.   charset = character set to use for internal conversions:
  107.             A - SV_A
  108.             E - SV_AE
  109.             G - SV_G
  110.   currcs  = charset in effect before this call (initially "E")
  111.  
  112.  
  113. ΓòÉΓòÉΓòÉ 4.2. Set_Autoconvert ΓòÉΓòÉΓòÉ
  114.  
  115. Set_Autoconvert causes ASCII<->EBCDIC translation of the entire data buffer on 
  116. send and receive verbs (A->E on send, E->A on receive). 
  117.  
  118. Syntax:
  119.  
  120.   currval = rxappcfd('Set_Autoconvert',val)
  121.  
  122. where:
  123.  
  124.   val     = 'Yes' or 'No'
  125.   currval = setting before this call (initially "No")
  126.  
  127.  
  128. ΓòÉΓòÉΓòÉ 4.3. Set_Call_Timing ΓòÉΓòÉΓòÉ
  129.  
  130. Set_Call_Timing causes each verb execution to be timed, with the millisecond 
  131. time value returned as part of the return value of the verb's execution (see 
  132. "Return Codes" above). 
  133.  
  134. Syntax:
  135.  
  136.   currval = rxappcfd('Set_Call_Timing',val)
  137.  
  138. where:
  139.  
  140.   val     = 'Yes' or 'No'
  141.   currval = setting before this call (initially "No")
  142.  
  143.  
  144. ΓòÉΓòÉΓòÉ 5. APPC Service Verbs ΓòÉΓòÉΓòÉ
  145.  
  146. APPC service verbs which are conversation type/style independent. 
  147.  
  148.  
  149. ΓòÉΓòÉΓòÉ 5.1. Receive_Allocate ΓòÉΓòÉΓòÉ
  150.  
  151. Receive_Allocate 
  152.  
  153. Syntax:
  154.  
  155.   appcrc = rxappcfd('receive_allocate',tpname,rexxstem)
  156.  
  157. where:
  158.  
  159.   tpname   = name of tp for which incoming allocate should be received
  160.   rexxstem = name of rexx stem under which data is returned:
  161.              stem.1  = tpid
  162.              stem.2  = convid
  163.              stem.3  = sync_level
  164.                        None
  165.                        Confirm
  166.              stem.4  = conv_type
  167.                        B   - Basic
  168.                        M   - Mapped
  169.              stem.5  = userid
  170.              stem.6  = lu_alias
  171.              stem.7  = plu_alias
  172.              stem.8  = mode_name
  173.              stem.9  = conv_group_id
  174.              stem.10 = fqplu_name
  175.              stem.11 = pip_incoming
  176.              stem.12 = conv_style
  177.                        A - Two way alternate
  178.                        S - Two way simultaneous
  179.  
  180.  
  181. ΓòÉΓòÉΓòÉ 5.2. Tp_Started ΓòÉΓòÉΓòÉ
  182.  
  183. Tp_Started 
  184.  
  185. Syntax:
  186.  
  187.   appcrc = rxappcfd('tp_started',loclu,tpname,rexxvar)
  188.  
  189. where:
  190.  
  191.   loclu   = name of local lu (default local lu if no supplied)
  192.   tpname  = name of local tp to start (1-64 chars)
  193.   rexxvar = name of rexx variable in which tpid is returned
  194.  
  195.  
  196. ΓòÉΓòÉΓòÉ 5.3. Tp_Ended ΓòÉΓòÉΓòÉ
  197.  
  198. Tp_Ended 
  199.  
  200. Syntax:
  201.  
  202.   appcrc = rxappcfd('tp_ended',tpid,type)
  203.  
  204. where:
  205.  
  206.   tpid    = tpid (returned from tp_started)
  207.   type    = 'Hard' or 'Soft'
  208.  
  209.  
  210. ΓòÉΓòÉΓòÉ 5.4. Convert ΓòÉΓòÉΓòÉ
  211.  
  212. Converts between ASCII and EBCDIC using specified conversion set. 
  213.  
  214. Syntax:
  215.  
  216.   appcrc = rxappcfd('convert',direction,charset,data,rexxvar)
  217.  
  218. where:
  219.  
  220.   direction = what data is to be converted TO:
  221.               E - convert ASCII to EBCDIC
  222.               A - convert EBCDIC to ASCII
  223.   charset   = what conversion character set to use:
  224.               E - SV_AE
  225.               A - SV_A
  226.               G - SV_G
  227.   data      = actual data to be converted
  228.   rexxvar   = name of rexx variable into which converted result is
  229.               placed.
  230.  
  231.  
  232. ΓòÉΓòÉΓòÉ 5.5. Get_Tp_Properties ΓòÉΓòÉΓòÉ
  233.  
  234. Get_Tp_Properties 
  235.  
  236. Syntax:
  237.  
  238.   appcrc = rxappcfd('get_tp_properties',tpid,rexxstem)
  239.  
  240. where:
  241.  
  242.   tpid     = tpid (returned from tp_started)
  243.   rexxstem = name of rexx stem under which information is returned:
  244.              stem.1   = tpname
  245.              stem.2   = lu_alias
  246.              stem.3   = fqlu_name
  247.              stem.4   = fqluw_name
  248.              stem.4.1 = luwid_instance
  249.              stem.4.2 = luwid_sequence
  250.              stem.5   = userid
  251.  
  252.  
  253. ΓòÉΓòÉΓòÉ 5.6. Get_Type ΓòÉΓòÉΓòÉ
  254.  
  255. Get_Type 
  256.  
  257. Syntax:
  258.  
  259.   appcrc = rxappcfd('get_type',tpid,convid,rexxstem)
  260.  
  261. where:
  262.  
  263.   tpid     = tpid (returned from tp_started)
  264.   convid   = conversation-id from allocate or receive_allocate
  265.   rexxstem = name of rexx stem under which information is returned:
  266.              stem.1   = convtype:
  267.                         B   = Basic conversation (half-duplex non-blocking)
  268.                               (Basic conversation prior to CM/2 v1.1)
  269.                         BN  = Basic Non-Blocking
  270.                         BFB = Basic Full-Duplex Blocking
  271.                         BFN = Basic Full-Duplex Non-Blocking
  272.                         M   = Mapped conversation (half-duplex non-blocking)
  273.                               (Mapped conversation prior to CM/2 v1.1)
  274.                         MN  = Mapped Non-Blocking
  275.                         MFB = Mapped Full-Duplex Blocking
  276.                         MFN = Mapped Full-Duplex Non-Blocking
  277.              stem.2   = convstyle:
  278.                         A - Two Way Alternate
  279.                         S - Two Way Simultaneous
  280.  
  281.  
  282. ΓòÉΓòÉΓòÉ 6. APPC Conversation Verbs ΓòÉΓòÉΓòÉ
  283.  
  284. APPC conversation verbs which are conversation type/style dependent. 
  285.  
  286.  
  287. The argument list for APPC Conversation Verbs is of the form:
  288.  
  289.   appcrc = rxappcfd(verb,convtype,...)
  290.  
  291. where:
  292.  
  293.   verb     = the specific appc verb
  294.   convtype = indicates type of conversation:
  295.  
  296.              B   = Basic conversation (half-duplex non-blocking)
  297.                    (also "BASIC")
  298.                    (Basic conversation prior to CM/2 v1.1)
  299.              BN  = Basic Non-Blocking
  300.              BFB = Basic Full-Duplex Blocking
  301.              BFN = Basic Full-Duplex Non-Blocking
  302.              M   = Mapped conversation (half-duplex non-blocking)
  303.                    (also "MAPPED")
  304.                    (Mapped conversation prior to CM/2 v1.1)
  305.              MN  = Mapped Non-Blocking
  306.              MFB = Mapped Full-Duplex Blocking
  307.              MFN = Mapped Full-Duplex Non-Blocking
  308.  
  309.  
  310. ΓòÉΓòÉΓòÉ 6.1. Allocate ΓòÉΓòÉΓòÉ
  311.  
  312. Allocate 
  313.  
  314. Syntax:
  315.  
  316.   appcrc = rxappcfd('allocate',convtype,tpid,synclvl,retctl,convstyle
  317.                    ,plu,modename,tpname,security,rexxstem)
  318.  
  319. where:
  320.  
  321.   tpid      = tpid obtained from 'tp_started'
  322.   synclvl   = synchronization level:
  323.               N - none
  324.               C - confirm
  325.   retctl    = return control:
  326.               A - when session allocated
  327.               I - immediate
  328.               F - when session free
  329.               G - when conv-group allocated
  330.               W - when conwinner allocated
  331.   convstyle = conversation style:
  332.               A - two way alternate
  333.               S - two way simultaneous
  334.   plu       = partner lu:
  335.                 plu-alias
  336.                   or
  337.                 fully qualified plu (contains a dot '.')
  338.   modename  = mode name
  339.   tpname    = name of partner tp (case sensitive)
  340.   security  = conversation security:
  341.               NONE
  342.               SAME
  343.               PGM userid password
  344.   rexxstem  = name of rexx stem variable under which info is returned:
  345.               stem.1 = convid
  346.               stem.2 = convgroupid
  347.  
  348.  
  349. ΓòÉΓòÉΓòÉ 6.2. Confirm ΓòÉΓòÉΓòÉ
  350.  
  351. Confirm 
  352.  
  353. Syntax:
  354.  
  355.   appcrc = rxappcfd('confirm',convtype,tpid,convid,rexxstem)
  356.  
  357. where:
  358.  
  359.   tpid      = tpid obtained from tp_started or receive_allocate
  360.   convid    = conversation-id from allocate or receive_allocate
  361.   rexxstem  = name of rexx stem variable under which info is returned:
  362.               stem.1 = request-to-send-received? (Y/N)
  363.               stem.2 = expedited-data-received? (Y/N)
  364.  
  365.  
  366. ΓòÉΓòÉΓòÉ 6.3. Confirmed ΓòÉΓòÉΓòÉ
  367.  
  368. Confirmed 
  369.  
  370. Syntax:
  371.  
  372.   appcrc = rxappcfd('confirmed',convtype,tpid,convid)
  373.  
  374. where:
  375.  
  376.   tpid      = tpid obtained from tp_started or receive_allocate
  377.   convid    = conversation-id from allocate or receive_allocate
  378.  
  379.  
  380. ΓòÉΓòÉΓòÉ 6.4. Deallocate ΓòÉΓòÉΓòÉ
  381.  
  382. Deallocate 
  383.  
  384. Syntax:
  385.  
  386.   appcrc = rxappcfd('deallocate',convtype,tpid,convid,type,rexxvar)
  387.  
  388. where:
  389.  
  390.   tpid      = tpid obtained from tp_started or receive_allocate
  391.   convid    = conversation-id from allocate or receive_allocate
  392.   type      = deallocate type:
  393.               S - sync_level
  394.               F - flush
  395.               P - abend_prog
  396.               V - abend_svc
  397.               T - abend_timer
  398.   rexxvar   = name of rexx variable into which "expedited_data_received"
  399.               value is placed:
  400.               Y - Yes
  401.               N - No
  402.  
  403.  
  404. ΓòÉΓòÉΓòÉ 6.5. Flush ΓòÉΓòÉΓòÉ
  405.  
  406. Flush 
  407.  
  408. Syntax:
  409.  
  410.   appcrc = rxappcfd('flush',convtype,tpid,convid)
  411.  
  412. where:
  413.  
  414.   tpid      = tpid obtained from tp_started or receive_allocate
  415.   convid    = conversation-id from allocate or receive_allocate
  416.  
  417.  
  418. ΓòÉΓòÉΓòÉ 6.6. Get_Attributes ΓòÉΓòÉΓòÉ
  419.  
  420. Get_Attributes 
  421.  
  422. Syntax:
  423.  
  424.   appcrc = rxappcfd('get_attributes',convtype,tpid,convid,rexxstem)
  425.  
  426. where:
  427.  
  428.   tpid      = tpid obtained from tp_started or receive_allocate
  429.   convid    = conversation-id from allocate or receive_allocate
  430.   rexxstem  = name of rexx stem under which info is returned:
  431.               stem.1  = sync level:
  432.                         N - None
  433.                         C - Confirm
  434.               stem.2  = mode name
  435.               stem.3  = net name
  436.               stem.4  = lu_name
  437.               stem.5  = lu_alias
  438.               stem.6  = plu_alias
  439.               stem.7  = plu_unqualified_name
  440.               stem.8  = fqplu_name
  441.               stem.9  = userid
  442.               stem.10 = conv_group_id
  443.               stem.11 = conv_corr_id
  444.  
  445.  
  446. ΓòÉΓòÉΓòÉ 6.7. Prepare_To_Receive ΓòÉΓòÉΓòÉ
  447.  
  448. Prepare_To_Receive 
  449.  
  450. Syntax:
  451.  
  452.   appcrc = rxappcfd('prepare_to_receive',convtype,tpid,convid,ptrtype
  453.                    ,locks)
  454.  
  455. where:
  456.  
  457.   tpid      = tpid obtained from tp_started or receive_allocate
  458.   convid    = conversation-id from allocate or receive_allocate
  459.   ptrtype   = prepare_to_receive type:
  460.               S - sync_level
  461.               F - flush
  462.   locks     = 'Short' or 'Long'
  463.  
  464.  
  465. ΓòÉΓòÉΓòÉ 6.8. Receive_And_Post ΓòÉΓòÉΓòÉ
  466.  
  467. Receive_And_Post 
  468.  
  469. Syntax:
  470.  
  471.   appcrc = rxappcfd('receive_and_post',convtype,tpid,convid,rswd
  472.                    ,maxlen,sem,rexxstem[,filltype])
  473.  
  474. where:
  475.  
  476.   tpid      = tpid obtained from tp_started or receive_allocate
  477.   convid    = conversation-id from allocate or receive_allocate
  478.   rswd      = return status with data:
  479.               Y - Yes
  480.               N - No
  481.   maxlen    = max length of data to receive
  482.   sem       = semaphore handle
  483.   rexxstem  = name of rexx stem under which info is returned:
  484.               stem.1 = Status Received:
  485.                        N  - None
  486.                        S  - Send
  487.                        C  - Confirm
  488.                        CS - ConfirmSend
  489.                        CD - ConfirmDeallocate
  490.               stem.2 = Data Received:
  491.                        N    - None
  492.                        D    - Data
  493.                        DC   - DataComplete
  494.                        DI   - DataIncomplete
  495.                        UCDC - UCDataComplete
  496.                        UCDI - UCDataInomplete
  497.               stem.3 = request_to_send_received:
  498.                        Y - Yes
  499.                        N - No
  500.               stem.4 = expedited_data_received:
  501.                        Y - Yes
  502.                        N - No
  503.               stem.5 = the actual data received
  504.   filltype  = for Basic conversations only:
  505.               B - Buffer
  506.               L - LL
  507.  
  508.  
  509. ΓòÉΓòÉΓòÉ 6.9. Receive_And_Wait ΓòÉΓòÉΓòÉ
  510.  
  511. Receive_And_Wait 
  512.  
  513. Syntax:
  514.  
  515.   appcrc = rxappcfd('receive_and_wait',convtype,tpid,convid,rswd
  516.                    ,maxlen,rexxstem[,filltype])
  517.  
  518. where:
  519.  
  520.   tpid      = tpid obtained from tp_started or receive_allocate
  521.   convid    = conversation-id from allocate or receive_allocate
  522.   rswd      = return status with data:
  523.               Y - Yes
  524.               N - No
  525.   maxlen    = max length of data to receive
  526.   rexxstem  = name of rexx stem under which info is returned:
  527.               stem.1 = Status Received:
  528.                        N  - None
  529.                        S  - Send
  530.                        C  - Confirm
  531.                        CS - ConfirmSend
  532.                        CD - ConfirmDeallocate
  533.               stem.2 = Data Received:
  534.                        N    - None
  535.                        D    - Data
  536.                        DC   - DataComplete
  537.                        DI   - DataIncomplete
  538.                        UCDC - UCDataComplete
  539.                        UCDI - UCDataInomplete
  540.               stem.3 = request_to_send_received:
  541.                        Y - Yes
  542.                        N - No
  543.               stem.4 = expedited_data_received:
  544.                        Y - Yes
  545.                        N - No
  546.               stem.5 = the actual data received
  547.   filltype  = for Basic conversations only:
  548.               B - Buffer
  549.               L - LL
  550.  
  551.  
  552. ΓòÉΓòÉΓòÉ 6.10. Receive_Expedited_Data ΓòÉΓòÉΓòÉ
  553.  
  554. Receive_Expedited_Data 
  555.  
  556. Syntax:
  557.  
  558.   appcrc = rxappcfd('receive_expedited_data',convtype,tpid,convid
  559.                    ,retctl,maxlen,rexxstem)
  560.  
  561. where:
  562.  
  563.   tpid      = tpid obtained from tp_started or receive_allocate
  564.   convid    = conversation-id from allocate or receive_allocate
  565.   retctl    = return control:
  566.               R - when expedited data received
  567.               I - immediately
  568.   maxlen    = max length of data to receive
  569.   rexxstem  = name of rexx stem under which info is returned:
  570.               stem.1 = request_to_send_received:
  571.                        Y - Yes
  572.                        N - No
  573.               stem.2 = expedited_data_received:
  574.                        Y - Yes
  575.                        N - No
  576.               stem.3 = the actual data received
  577.   filltype  = for Basic conversations only:
  578.               B - Buffer
  579.               L - LL
  580.  
  581.  
  582. ΓòÉΓòÉΓòÉ 6.11. Receive_Immediate ΓòÉΓòÉΓòÉ
  583.  
  584. Receive_Immediate 
  585.  
  586. Syntax:
  587.  
  588.   appcrc = rxappcfd('receive_immediate',convtype,tpid,convid,rswd
  589.                    ,maxlen,rexxstem[,filltype])
  590.  
  591. where:
  592.  
  593.   tpid      = tpid obtained from tp_started or receive_allocate
  594.   convid    = conversation-id from allocate or receive_allocate
  595.   rswd      = return status with data:
  596.               Y - Yes
  597.               N - No
  598.   maxlen    = max length of data to receive
  599.   rexxstem  = name of rexx stem under which info is returned:
  600.               stem.1 = Status Received:
  601.                        N  - None
  602.                        S  - Send
  603.                        C  - Confirm
  604.                        CS - ConfirmSend
  605.                        CD - ConfirmDeallocate
  606.               stem.2 = Data Received:
  607.                        N    - None
  608.                        D    - Data
  609.                        DC   - DataComplete
  610.                        DI   - DataIncomplete
  611.                        UCDC - UCDataComplete
  612.                        UCDI - UCDataInomplete
  613.               stem.3 = request_to_send_received:
  614.                        Y - Yes
  615.                        N - No
  616.               stem.4 = expedited_data_received:
  617.                        Y - Yes
  618.                        N - No
  619.               stem.5 = the actual data received
  620.   filltype  = for Basic conversations only:
  621.               B - Buffer
  622.               L - LL
  623.  
  624.  
  625. ΓòÉΓòÉΓòÉ 6.12. Request_To_Send ΓòÉΓòÉΓòÉ
  626.  
  627. Request_To_Send 
  628.  
  629. Syntax:
  630.  
  631.   appcrc = rxappcfd('request_to_send',convtype,tpid,convid)
  632.  
  633. where:
  634.  
  635.   tpid      = tpid obtained from tp_started or receive_allocate
  636.   convid    = conversation-id from allocate or receive_allocate
  637.  
  638.  
  639. ΓòÉΓòÉΓòÉ 6.13. Send_Conversation ΓòÉΓòÉΓòÉ
  640.  
  641. Send_Conversation 
  642.  
  643. Syntax:
  644.  
  645.   appcrc = rxappcfd('send_conversation',convtype,tpid,retctl,plu
  646.                    ,modename,tpname,security,data,rexxstem)
  647.  
  648. where:
  649.  
  650.   tpid      = tpid obtained from 'tp_started'
  651.   retctl    = return control:
  652.               A - when session allocated
  653.               I - immediate
  654.               F - when session free
  655.               G - when conv-group allocated
  656.               W - when conwinner allocated
  657.   plu       = partner lu:
  658.                 plu-alias
  659.                   or
  660.                 fully qualified plu (contains a dot '.')
  661.   modename  = mode name
  662.   tpname    = name of partner tp (case sensitive)
  663.   security  = conversation security:
  664.               NONE
  665.               SAME
  666.               PGM userid password
  667.   data      = actual data to be sent
  668.   rexxstem  = name of rexx stem variable under which info is returned:
  669.               stem.1 = convgroupid
  670.  
  671.  
  672. ΓòÉΓòÉΓòÉ 6.14. Send_Data ΓòÉΓòÉΓòÉ
  673.  
  674. Send_Data 
  675.  
  676. Syntax:
  677.  
  678.   appcrc = rxappcfd('send_data',convtype,tpid,convid,type,data,rexxstem)
  679.  
  680. where:
  681.  
  682.   tpid      = tpid obtained from tp_started or receive_allocate
  683.   convid    = conversation-id from allocate or receive_allocate
  684.   type      = send type:
  685.               N    - None
  686.               F    - Flush
  687.               C    - Confirm
  688.               PTRF - Prepare To Receive Flush
  689.               PTRS - Prepare To Receive Sync Level
  690.               DF   - Deallocate Flush
  691.               DS   - Deallocate Sync Level
  692.               DA   - Deallocate Abend
  693.   data      = actual data to be sent
  694.   rexxstem  = name of rexx stem variable under which info is returned:
  695.               stem.1 = request-to-send-received? (Y/N)
  696.               stem.2 = expedited-data-received? (Y/N)
  697.  
  698.  
  699. ΓòÉΓòÉΓòÉ 6.15. Send_Error ΓòÉΓòÉΓòÉ
  700.  
  701. Send_Error 
  702.  
  703. Syntax:
  704.  
  705.   appcrc = rxappcfd('send_error',convtype,tpid,convid,type,errdir
  706.                    ,rexxstem)
  707.  
  708. where:
  709.  
  710.   tpid      = tpid obtained from tp_started or receive_allocate
  711.   convid    = conversation-id from allocate or receive_allocate
  712.   type      = send type:
  713.               P - Prog
  714.               S - Svc
  715.   errdir    = error direction:
  716.               R - Receive
  717.               S - Send
  718.   rexxstem  = name of rexx stem variable under which info is returned:
  719.               stem.1 = request-to-send-received? (Y/N)
  720.               stem.2 = expedited-data-received? (Y/N)
  721.  
  722.  
  723. ΓòÉΓòÉΓòÉ 6.16. Send_Expedited_Data ΓòÉΓòÉΓòÉ
  724.  
  725. Send_Expedited_Data 
  726.  
  727. Syntax:
  728.  
  729.   appcrc = rxappcfd('send_expedited_data',convtype,tpid,convid,data
  730.                    ,rexxstem)
  731.  
  732. where:
  733.  
  734.   tpid      = tpid obtained from tp_started or receive_allocate
  735.   convid    = conversation-id from allocate or receive_allocate
  736.   data      = actual data to be sent
  737.   rexxstem  = name of rexx stem variable under which info is returned:
  738.               stem.1 = request-to-send-received? (Y/N)
  739.               stem.2 = expedited-data-received? (Y/N)
  740.  
  741.  
  742. ΓòÉΓòÉΓòÉ 6.17. Test_Rts ΓòÉΓòÉΓòÉ
  743.  
  744. Test_Rts 
  745.  
  746. Syntax:
  747.  
  748.   appcrc = rxappcfd('test_rts',convtype,tpid,convid)
  749.  
  750. where:
  751.  
  752.   tpid      = tpid obtained from tp_started or receive_allocate
  753.   convid    = conversation-id from allocate or receive_allocate
  754.