# Conditional procedure argument

**URL:** <https://tech-community.robotics.abb.com/t/conditional-procedure-argument/7561>\
**Category:** RAPID Programming\
**Tags:** rapid\
**Created:** [February 5, 2017, 9:33am UTC](https://tech-community.robotics.abb.com/t/conditional-procedure-argument/7561 "2017-02-05T09:33:12Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![l.holetzke](https://avatars.discourse-cdn.com/v4/letter/l/74df32/32.png) [@l.holetzke](https://tech-community.robotics.abb.com/u/l.holetzke)\
**Post date:** [February 5, 2017, 9:33am UTC](https://tech-community.robotics.abb.com/t/conditional-procedure-argument/7561/1 "2017-02-05T09:33:12Z")

</div>

Hi,

could you please provide an example, how to use a conditional procedure argument?  
The “conditional procedure argument” is described as part of the language in the “RAPID kernel” topic Statements/Procedure call:

```auto

<conditional procedure argument> ::=

'\' <identifier> '?' ( <parameter> | <VAR> )

```

---

<div class="post-metadata">

**Author:** ![l.holetzke](https://avatars.discourse-cdn.com/v4/letter/l/74df32/32.png) [@l.holetzke](https://tech-community.robotics.abb.com/u/l.holetzke)\
**Post date:** [February 5, 2017, 9:54am UTC](https://tech-community.robotics.abb.com/t/conditional-procedure-argument/7561/2 "2017-02-05T09:54:00Z")

</div>

Ok, got it by myself

```auto
MODULE TestModule
    PROC Main()    
        VAR wobjdata ok2;
        TPErase;
        TestProc \ok:=ok2;
    ENDPROC
    
    PROC TestProc(\wobjdata wobj,\wobjdata ok)
        TestProc2 \wobj?wobj, \ok?ok;
    ENDPROC
    
    PROC TestProc2(\wobjdata wobj,\wobjdata ok)
        IF Present(wobj) THEN
            TPWrite "wobj present";
        ENDIF
        IF Present(ok) THEN
            TPWrite "ok present";
        ENDIF
    ENDPROC
ENDMODULE

```
