All files / src/abap/2_statements/statements call_transaction.ts

100% Statements 31/31
100% Branches 1/1
100% Functions 1/1
100% Lines 31/31

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 311x 1x 1x 1x 1x 1x 1x 1x 1x 79x 79x 79x 79x 79x 79x 79x 79x 79x 79x 79x 79x 79x 79x 79x 79x 79x 79x 79x 79x 1x 1x
import {IStatement} from "./_statement";
import {verNot, seq, opt, altPrio, per, optPrio} from "../combi";
import {Target, Source} from "../expressions";
import {Version} from "../../../version";
import {IStatementRunnable} from "../statement_runnable";
 
export class CallTransaction implements IStatement {
 
  public getMatcher(): IStatementRunnable {
 
    const options = seq("OPTIONS FROM", Source);
    const messages = seq("MESSAGES INTO", Target);
 
    const auth = seq(altPrio("WITH", "WITHOUT"), "AUTHORITY-CHECK");
 
    const perm = per(seq("UPDATE", Source),
                     "AND SKIP FIRST SCREEN",
                     options,
                     messages,
                     seq("MODE", Source));
 
    const ret = seq("CALL TRANSACTION",
                    Source,
                    optPrio(auth),
                    optPrio(seq("USING", Source)),
                    opt(perm));
 
    return verNot(Version.Cloud, ret);
  }
 
}