Make whole form read-only

Hello guys,

I am using process designer to show form that I want to be read only but I can't edit it because it uses the same subform as editable form and I want to leave it like that.

So I want to make a form whole form read-only whith script.

I found this instructions but I can't find a button that has a label "I/O (if RIO)"

https://www.linium.com/blogs/partners/hp-transformer-tech-tips/bid/128451/Programmers-Tip-Making-a-Form-Read-Only-in-Service-Manager

Does anyone know how to make a form read-only not by editing form but just loading it.

In process designer I have set up condition that will show that form.

And I don't want to use process designer "Form Edit Condition" I want to lock my own form.

image.png

Best regards,

Dino

  • Display Screen have a field called "I/O (If RIO)". Those can be found from Tailoring Tools > Display Screens. Is this what you're looking for?

    To locate the correct Display Screen which "hosts" your form, open your form "live" (not in a Forms Designer but like a user would see it) in desktop client and check the bottom right corner and text inside parenthesis.

  • Verified Answer

    Hi , I have managed to solve this problem currently for one module (Request Management) but I think that I will manage on others.

    The procedure goes like this:

    1. Find the Display Screen which you want to use
      1. That is done inside desktop client where you open the desired form and in rad debugger write

        "display 1 in $L.screen" as said in instructions

      2. A different approach is that you can see display screen in right-bottom part of the client where you can see a name of the form, besides the form inside parentheses there is a name of the view. It looks like this nameoftheform(nameoftheview)
    2. Copy form that you want to use so we don't lock "main" form
    3. In command line in upper - left corner write ds (display screen) and press "Enter"
    4. Open desired view (I have done this on Request Management module), I have written "rm.request.view"
    5. Make backup!
    6. Find variable $L.editable.flag inside code, because if you write condition inside of I/O (if RIO): field later on you will have sausage of code inside of it
      1. $L.editable.flag can be found inside of the code and then placed in I/O (if RIO):
      2. I/O (if RIO) field is filled "true" replace it with $L.editable.flag
    1. Find this $L.editable.flag=gui() and $L.update.flag and (open in $L.filed~=false or $L.mode="update") line of the code
    2. Update it with this $L.editable.flag=gui() and $L.update.flag and (open in $L.filed~=false or $L.mode="update") and nullsub($L.format, "")~="cpg.rm.request.fullfillment.read.only"
      1. This will block only my desired form not all forms on that view, you can of course add this line of code into I/O (if RIO) field but I think that it looks better inside of the code and you can add many more forms into code, you have better view at code...

     

    Best regards,

    Dino

     

  • Thanks for a nice informative wrapup, I learnt something new as well!