Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method MappingSalesSegmentData ( 
 | 
  Strings businessTypes, 
 | 
  GlobalOTDTable globalOTDTable 
 | 
) 
 | 
{ 
 | 
  Description: 'ETL销售部门' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // yypsybs Aug-15-2023 (created) 
 | 
    // 待处理数据 
 | 
    listToDeal := construct( Global_MappingSalesSegment_MPs ); 
 | 
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) { 
 | 
        listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, true ); 
 | 
    } else { 
 | 
        listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, businessTypes.Find( item.BusinessType() ) <> -1 ); 
 | 
    } 
 | 
    //nameList := construct( structured[String] ); 
 | 
    //nameList := selectvalues( listToDeal, Elements, item, true, item.Name() ); 
 | 
    //// 检查parent 
 | 
    //traverse( listToDeal, Elements, item, item.ParentName() <> "" ) { 
 | 
    //    if( nameList.Find( item.ParentName() ) = -1 ) { 
 | 
    //        error( "sales segment parent not found: " + item.Name().AsQUILL() ); 
 | 
    //    } 
 | 
    //} 
 | 
    //// 逐层遍历,直至处理完成 
 | 
    //dealtNameList := construct( structured[String] ); 
 | 
    //while( listToDeal.Size() <> dealtNameList.Size() ) { 
 | 
    //    traverse( listToDeal, Elements, item ) { 
 | 
    //        // 未处理过 
 | 
    //        if( dealtNameList.Find( item.Name() ) < 0 ){ 
 | 
    //            // 无父部门,直接处理 
 | 
    //            if( item.ParentName() = "" ) { 
 | 
    //                SalesSegment_MP::CreateOrUpdate( this, item.Name(), item.DisplayIndex(), item.ParentName() ); 
 | 
    //                dealtNameList.Add( item.Name() ); 
 | 
    //            }  
 | 
    //            // 有父部门且父部门已处理 
 | 
    //            else if( item.ParentName() <> "" and dealtNameList.Find(item.ParentName()) >= 0 ) { 
 | 
    //                SalesSegment_MP::CreateOrUpdate( this, item.Name(), item.DisplayIndex(), item.ParentName() ); 
 | 
    //                dealtNameList.Add( item.Name() ); 
 | 
    //            } 
 | 
    //            // 有父部门且父部门未处理,下一轮处理 
 | 
    //        } 
 | 
    //    } 
 | 
    //} 
 | 
    traverse( listToDeal,Elements,item ){ 
 | 
      if( item.ParentName() <> "" and isnull( SalesSegment_MP::FindByName( this, item.ParentName() ) ) ){ 
 | 
        SalesSegment_MP::CreateOrUpdate( this, item.ParentName(), item.DisplayIndex(), "" ); 
 | 
        } 
 | 
      } 
 | 
     
 | 
    traverse( listToDeal,Elements,item ){ 
 | 
        SalesSegment_MP::CreateOrUpdate( this, item.Name(), item.DisplayIndex(), item.ParentName() ); 
 | 
      } 
 | 
  *] 
 | 
} 
 |