Some time ago (change from 18.0 to 18.1) I had my first "Dead lock".
Allan Kim Eriksen helps with a workaround to run the program.
But we don´t have make the change to 18.1 (too afraid of problems).
We have removed 2 of 3 alias (not more needed in this application).
The application is using a SQL database.
There is a pkg : debuglock.pkg with some changes by Garrett Mott for SQL.

I can do what I want, the message is "default" instead "No Locks"

Please have a look at:
gera_gr is the master
gera_gr2 is the alias

gera_gr.dd
Code:
Open Gera_Gr
Open St_Gera
Open Disp_Gr
Open Nummer2

Register_Object su_ggru
Register_Object su_ggru2

Register_Object su_text

Class Gera_Gr_DataDictionary  is a cKusDataDict

    // Define_Fields:
    // This procedure is used to set up all data-dictionary rules.

    Procedure Construct_Object
        Forward Send Construct_Object


        Set Main_File To Gera_Gr.File_Number

        Set Foreign_Field_Option DD_KEYFIELD DD_AUTOFIND to True
        Set Foreign_Field_Option DD_KEYFIELD DD_NOPUT to True
        Set Foreign_Field_Option DD_KEYFIELD DD_FINDREQ to True
        Set Foreign_Field_Option DD_INDEXFIELD DD_NOPUT to True
        Set Foreign_Field_Option DD_INDEXFIELD DD_FINDREQ to True
        Set Foreign_Field_Option DD_DEFAULT DD_DISPLAYONLY to True

        // Child (Client) file structure................
        Set Add_Client_File to St_Gera.File_Number

        // External (System) file structure.............
        Set Add_System_File to Nummer2.File_Number DD_LOCK_ON_ALL

        Set Field_Auto_Increment Field Gera_Gr.Numm to File_Field Nummer2.Gera_Gr

        // Field-based properties.......................


        Set Field_Prompt_Object Field Gera_Gr.Such to su_ggru

        Set Field_Prompt_Object Field Gera_Gr.Numm to su_ggru2

        Set Field_Checkbox_Values Field Gera_Gr.Kze To "J" ""
        Set Field_Option Field Gera_Gr.Kze DD_CAPSLOCK to True

        Set Field_Prompt_Object Field Gera_Gr.STEXT to su_text


    End_Procedure    // Construct_Object


    Procedure Field_Defaults
        Forward Send Field_Defaults
    End_Procedure    // Field_Defaults

End_Class    // Gera_Gr_DataDictionary
#IFDEF Is$WebApp
#ELSE
Use su_text.sl

Use su_ggru.sl       // su_ggru
Use su_ggru2.sl      // su_ggru2

#ENDIF
and gera_gr2.dd

Code:
Register_Object su_ggru
Register_Object su_ggru2

Use gera_gr.DD     
Open gera_gr2
Open DISP_GR

Set_Attribute DF_FILE_ALIAS of gera_gr2.File_number to DF_FILE_IS_ALIAS


Class Gera_gr2_DataDictionary is a Gera_Gr_DataDictionary

    Procedure Construct_Object
        Forward Send Construct_Object

      Set Foreign_Field_Option DD_KEYFIELD DD_AUTOFIND to False

      Set Foreign_Field_Option DD_INDEXFIELD DD_FINDREQ to False
        Set Alias_File to gera_gr2.File_Number 
        Set pbForeignReadOnly to True
        Set pbUseDDRelates to True
        Set pbNoCascadeDeleteStrict to True


//        Set Main_File to Gera_Gr2.File_Number

        Set Add_Client_File to DISP_GR.File_Number

        // Field-based properties.......................

        Set Field_Prompt_Object Field Gera_Gr2.Such to su_ggru

        Set Field_Prompt_Object Field Gera_Gr2.Numm to su_ggru2
        //Set Field_Auto_Increment Field gera_gr2.NUMM to 0 0

        Set Field_Checkbox_Values Field Gera_Gr2.Kze to "J" ""
        Set Field_Option Field Gera_Gr2.Kze DD_CAPSLOCK to True


    End_Procedure    // Construct_Object

    Procedure Update
    End_Procedure
 
    Procedure Backout
    End_Procedure

    Procedure Deleting
    End_Procedure
    
    Procedure Creating
    End_Procedure
    
    Function Validate_Save Returns Integer
     
    End_Function

    Function Validate_Delete Returns Integer
    End_Function
    
    Function Validate_Cascade_Delete Returns Boolean
    End_Function
    
    Procedure OnSaveRecord
    End_Procedure
    
    Procedure OnPreFind Integer eMessage
    End_Procedure

    Procedure OnPostFind Integer eMessage Boolean bFound
    End_Procedure
    
    Procedure OnConstrain
    End_Procedure
    // Field_Defaults:
    // This procedure is used to establish default field values.

//    Procedure Field_Defaults
//        Forward Send Field_Defaults
//    End_Procedure    // Field_Defaults

End_Class
#IFDEF Is$WebApp
#ELSE

Use su_ggru.sl       // su_ggru
Use su_ggru2.sl      // su_ggru2

#ENDIF