xiaoding721
2024-11-29 86d2018efcbee0e9a6d0c33ae93f4fc423242973
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallInterfaceForSAPGet.qbl
@@ -3,14 +3,14 @@
StaticMethod CallInterfaceForSAPGet (
  InterfaceDataset owner,
  InterfaceLoginfo loginfo
) as owning InterfaceSAPResponseLoginfos
) as String
{
  Description: '调用数据中台接口'
  TextBody:
  [*
    // 甄兰鸽 Jul-22-2024 (created)
    address           := Translations::InterfaceDataset_SAP_Address(); 
    httpinterface     := HTTPInterface::Create( address,80);
    httpinterface     := HTTPInterface::Create( address,8080);
    httpinterface.PostMethod( true ); ; 
    httpinterface.MediaType( Translations::InterfaceDataset_ContentType() );
    try{
@@ -31,7 +31,8 @@
    //后续公共处理
    loginfo.FinishTime( DateTime::ActualTime() );
    data             := JSON::Null().Build();
    saploginfos      := construct( InterfaceSAPResponseLoginfos );
    sapresponse      := construct( InterfaceSAPResponseLoginfos );
    feedback         := '';
    if( loginfo.Success() ){
      resultJson     := JSON::Parse( loginfo.Response() );
      code           := resultJson.Get( "code" ).GetNumber();
@@ -47,10 +48,22 @@
      }
      for( i := 0; i < data.Size(); i++ ){
        item := data.Get( i );
        saploginfos.Add( InterfaceSAPResponseLoginfo::GenerateData( loginfo, item ) );
        sapresponse.Add( InterfaceSAPResponseLoginfo::GenerateData( loginfo, item ) );
      }
      sucproduct     := selectuniquevalues( sapresponse, Elements, e, e.IsSuccess(), e.Msg_v1() );
      failmssages    := selectuniquevalues( sapresponse, Elements, e, not e.IsSuccess(), ifexpr( e.Msg().FindString( e.Msg_v1(), 0 ) > -1, e.Msg().ReplaceAll( e.Msg_v1(), '*' ), e.Msg() ) );
      feedback       := feedback.Concat( '产品' ).Concat( sucproduct.Concatenate( "、" ) ).Concat( '推送成功' ).Concat( ';' );
      traverse( failmssages, Elements, failmsg ){
        failproduct  := selectuniquevalues( sapresponse, Elements, e, not e.IsSuccess() and ( failmsg = e.Msg() or failmsg = e.Msg().ReplaceAll( e.Msg_v1(), '*' ) ), e.Msg_v1() );
        if( failmsg.FindString( '*', 0  ) > -1 ){
          feedback   := feedback.Concat( failmsg.ReplaceAll( '*', failproduct.Concatenate( '、' ) ) ).Concat( ';' );
        }else{
          feedback   := feedback.Concat( '产品' ).Concat( failproduct.Concatenate( '、' ) ).Concat( '因为' ).Concat( failmsg ).Concat( '推送失败' ).Concat( ';' );
        }
      }
      feedback       := feedback.Replace( feedback.Length() - 1, 1, '。' );
    }
    
    return &saploginfos;
    return feedback;
  *]
}