Usage Example

The following example illustrates use of the Generic API Analysis feature:

<APIEntry name='Call another program'>
  <match stmt="CALL">
    <name value="INVOKEPGM"/>
  </match>
  <flow halts='no'>
    <param index='1' usage='r'/>
    <param index='*' usage='w'/>
  </flow>
  <vars>
    <arg var='a' param='2' type='bit' len='5'/>
  </vars>
  <rep>
    <rel name='CallsDecision'>
      <target type='DECISION'>
        <attr name='AKA'
              value='%_pgmname.
              Calls.INVOKEPGM(%_varname1)'/>
        <attr name='AKA'
              value='%_pgmname.
              Calls.INVOKEPGM'/>
        <attr name='DecisionType'
              value='PROGRAMENTRY'/>
        <attr name='HCID' value='%_hcid'/>
        <attr name='VariableName'
              value='%_varname1'/>
        <attr name='Completed' switch-var='1'>
          <undef value='False'/>
        </attr>
        <attr name='Completed' value='True'/>
        <rel name='ResolvesToProgramEntry'>
          target type='PROGRAMENTRY'
                 name='%1'/>
        </rel>
      </target>
    </rel>
  </rep>
  <hc>
    <attr name='test' switch-var='%a' join=','
      <case eq='00101' value='X'/>
      <undef value='?'/>
      <default value='%a'/>
    </attr>
  </hc>
</APIEntry>