Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod CreateAllDatabaseTablesForDBBook ( 
 | 
  String brokername, 
 | 
  output String feedback_o 
 | 
) as Boolean 
 | 
{ 
 | 
  Description: 
 | 
  [* 
 | 
    Create all the tables for database export for exchanging data. 
 | 
    This method only receives the broker name, thus this has to be called multiple times if there are few brokers for exporting to database. 
 | 
    Before using this method, the table has to be retrieved manually in the EDI broker. 
 | 
  *] 
 | 
  TextBody: 
 | 
  [* 
 | 
    // srt Jul-8-2014 (created) 
 | 
    //Squall 
 | 
    created := false; 
 | 
    domain := DomainModel::Domain(); 
 | 
     
 | 
    edibroker := select( domain, EDIDefinitionManager.BrokerDefinitions, bd, bd.Name().ToUpper() = brokername.ToUpper().TrimBoth() ); 
 | 
     
 | 
    if( not isnull( edibroker ) ) 
 | 
    { 
 | 
      link := guard( edibroker.Destination().astype( EDIODBCLinkDefinition ), null( EDIODBCLinkDefinition ) ); 
 | 
      if( not isnull( link ) ) 
 | 
      { 
 | 
        traverse( edibroker, Destination.astype( EDIODBCLinkDefinition).DescriptionPlug.Tables, t ) //Table that is already created 
 | 
        { 
 | 
          table := t.PlugTable(); 
 | 
          intftable := guard( table.USAGE_QEDIODBCLinkTable_QEDITableInfo_InterfaceTable(), null( EDIODBCLinkTable ) ); 
 | 
          //Check validation for each table 
 | 
          feedback_o := feedback_o 
 | 
                        + t.Name() + " : "; 
 | 
          if( not link.Description().Described() 
 | 
               or ( not isnull( table ) and isnull( intftable ) ) ) 
 | 
          { 
 | 
            feedback_o := feedback_o 
 | 
                          + Translations::MP_MacroPlan_CreateAllDatabaseTablesForDBBook_ObtainTable() 
 | 
                          + String::NewLine(); 
 | 
          } 
 | 
          else if( not isnull( t.SocketTable() ) ) 
 | 
          { 
 | 
            feedback_o := feedback_o 
 | 
                          + Translations::MP_MacroPlan_CreateAllDatabaseTablesForDBBook_TableExists() 
 | 
                          + String::NewLine(); 
 | 
          } 
 | 
          else if( not isnull( table ) and table.PrimaryKeyColumns( relsize ) = 0 ) 
 | 
          { 
 | 
            feedback_o := feedback_o 
 | 
                          + Translations::MP_MacroPlan_CreateAllDatabaseTablesForDBBook_NoPrimaryKey() 
 | 
                          + String::NewLine(); 
 | 
          } 
 | 
          else if( isnull( table ) ) 
 | 
          { 
 | 
            feedback_o := feedback_o 
 | 
                          + Translations::MP_MacroPlan_CreateAllDatabaseTablesForDBBook_NotInterface() 
 | 
                          + String::NewLine();// WBS: Should not be possible 
 | 
          } 
 | 
          else if( not isnull( intftable ) and not intftable.MayCreateTable() ) 
 | 
          { 
 | 
            feedback_o := feedback_o 
 | 
                          + Translations::MP_MacroPlan_CreateAllDatabaseTablesForDBBook_NoLocalPermission() 
 | 
                          + String::NewLine(); 
 | 
          } 
 | 
          else 
 | 
          { 
 | 
              //Create Table 
 | 
              created := true; 
 | 
              ct := table.USAGE_QEDIODBCLinkTable_QEDITableInfo_InterfaceTable(); 
 | 
              ct.CreateDBTable(); 
 | 
              feedback_o := feedback_o 
 | 
                            + Translations::MP_MacroPlan_CreateAllDatabaseTablesForDBBook_Created() 
 | 
                            + String::NewLine(); 
 | 
          } 
 | 
        } 
 | 
      } 
 | 
      else 
 | 
      { 
 | 
        created := false; 
 | 
        feedback_o := Translations::MP_MacroPlan_CreateAllDatabaseTablesForDBBook_Invalid(); 
 | 
      } 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      created := false; 
 | 
      feedback_o := Translations::MP_MacroPlan_CreateAllDatabaseTablesForDBBook_NotFound(); 
 | 
    } 
 | 
     
 | 
    return created; 
 | 
  *] 
 | 
} 
 |