<?xml version="1.0" encoding="UTF-8"?><greyhoundFile><dataClass>TRpcRule</dataClass><dataVersion>0</dataVersion><data><struct><member><name>ID</name><value><i4>267</i4></value></member><member><name>CategoryRefs</name><value><array><data><value><i4>6</i4></value></data></array></value></member><member><name>Order</name><value><i4>95</i4></value></member><member><name>State</name><value><i4>1</i4></value></member><member><name>Name</name><value>Workflow: returnless Autorisierungen &amp; Ablehnungen</value></member><member><name>Triggers</name><value><i4>20</i4></value></member><member><name>Recurrence</name><value></value></member><member><name>ExpertData</name><value>FbmRuleNode0M81447WHU.Extended=0
FbmRuleNode0M81447WHU.FailureNode=FbmRuleNodeBXMPG6CVPS
FbmRuleNode0M81447WHU.Field=1
FbmRuleNode0M81447WHU.FlipNodes=0
FbmRuleNode0M81447WHU.Locked=0
FbmRuleNode0M81447WHU.Op=2
FbmRuleNode0M81447WHU.SuccessNode=FbmRuleNodeHEMOVTCLYO
FbmRuleNode0M81447WHU.Type=TFbmRuleNodeConditionItem
FbmRuleNode0M81447WHU.Value=New request created
FbmRuleNode0M81447WHU.X=552
FbmRuleNode0M81447WHU.Y=108
FbmRuleNode5DEQE8PZGT.CustomSubject=API KEY
FbmRuleNode5DEQE8PZGT.Extended=0
FbmRuleNode5DEQE8PZGT.FunctionSource=const\r\n  API_KEY = &apos;5OfgxSpdOhEODs5yg1glo4UaxajSu6sjP4H4OYYZ61af80b2&apos;;\r\n\r\nvar\r\n  Http        : TFbmHttp;\r\n  sURL        : String;\r\n  sRef        : String;\r\n  sInternalId : String;\r\n  sBody       : String;\r\n  sResponse   : String;\r\n  bSuccess    : Boolean;\r\n  iStart      : Integer;\r\n  iEnd        : Integer;\r\n\r\nprocedure ExtractInternalId;\r\nbegin\r\n  sRef  := Item.UserFields.ItemsByName[&apos;Referenznummer&apos;].DataTypeValue;\r\n  sBody := Item.TextViewData;\r\n\r\n  iStart := Pos(&apos;%2Frequests%2F&apos;, sBody);\r\n  if iStart &gt; 0 then\r\n  begin\r\n    iStart := iStart + Length(&apos;%2Frequests%2F&apos;);\r\n    iEnd   := iStart;\r\n    while (iEnd &lt;= Length(sBody)) and (sBody[iEnd] &lt;&gt; &apos;/&apos;) and (sBody[iEnd] &lt;&gt; &apos;&quot;&apos;) and (sBody[iEnd] &lt;&gt; &apos; &apos;) and (sBody[iEnd] &lt;&gt; #13) and (sBody[iEnd] &lt;&gt; #10) do\r\n      iEnd := iEnd + 1;\r\n    sInternalId := Copy(sBody, iStart, iEnd - iStart);\r\n  end;\r\nend;
FbmRuleNode5DEQE8PZGT.Locked=0
FbmRuleNode5DEQE8PZGT.NextNode=FbmRuleNodeSPD1ZRL55L
FbmRuleNode5DEQE8PZGT.Type=TFbmRuleNodeActionFunction
FbmRuleNode5DEQE8PZGT.X=552
FbmRuleNode5DEQE8PZGT.Y=-264
FbmRuleNode6NDI4D4CD9.CustomSubject=Ablehnung
FbmRuleNode6NDI4D4CD9.Extended=0
FbmRuleNode6NDI4D4CD9.Locked=0
FbmRuleNode6NDI4D4CD9.Source=begin\r\n      ExtractInternalId;\r\n\r\n      if Trim(sInternalId) = &apos;&apos; then\r\n      begin\r\n        Item.AddToProtocol(\r\n          &apos;[Returnless] FEHLER: Interne ID konnte nicht aus dem E-Mail-Body extrahiert werden.&apos; + #13#10 +\r\n          &apos;Referenz: &apos; + sRef\r\n        );\r\n        Exit;\r\n      end;\r\n\r\n      sURL := &apos;https://api-v2.returnless.com/2023-02/request-orders/&apos; + sInternalId + &apos;/reject&apos;;\r\n\r\n      Item.AddToProtocol(\r\n        &apos;[Returnless] Starte Ablehnung.&apos; + #13#10 +\r\n        &apos;Referenz:    &apos; + sRef + #13#10 +\r\n        &apos;Interne ID:  &apos; + sInternalId + #13#10 +\r\n        &apos;URL:         &apos; + sURL\r\n      );\r\n\r\n      Http := TFbmHttp.Create;\r\n      try\r\n        Http.ContentType := &apos;application/json&apos;;\r\n        Http.Headers.Values[&apos;Authorization&apos;] := &apos;Bearer &apos; + API_KEY;\r\n        Http.Headers.Values[&apos;Accept&apos;]        := &apos;application/json&apos;;\r\n\r\n        bSuccess := Http.PutEx(sURL, &apos;{}&apos;, sResponse);\r\n\r\n        if bSuccess then\r\n        begin\r\n          case Http.ResultCode of\r\n            200, 201, 204:\r\n               Item.AddToProtocol(\r\n                 &apos;[Returnless] Rücksendung &apos; + sRef + &apos; erfolgreich abgelehnt.&apos; + #13#10 //+\r\n                 //&apos;HTTP-Status: &apos; + IntToStr(Http.ResultCode) + #13#10 +\r\n                 //&apos;Antwort: &apos; + sResponse\r\n               );\r\n            401:\r\n              Item.AddToProtocol(\r\n                &apos;[Returnless] FEHLER 401 – Authentifizierung fehlgeschlagen.&apos; + #13#10 +\r\n                &apos;Bitte API-Key in der Konstante API_KEY prüfen.&apos;\r\n              );\r\n            404:\r\n              Item.AddToProtocol(\r\n                &apos;[Returnless] FEHLER 404 – Request-Order nicht gefunden.&apos; + #13#10 +\r\n                &apos;Interne ID: &apos; + sInternalId\r\n              );\r\n            else\r\n              Item.AddToProtocol(\r\n                &apos;[Returnless] FEHLER: Unerwarteter HTTP-Code &apos; + IntToStr(Http.ResultCode) + #13#10 +\r\n                &apos;Antwort: &apos; + sResponse\r\n              );\r\n          end;\r\n        end\r\n        else\r\n          Item.AddToProtocol(\r\n            &apos;[Returnless] FEHLER: PUT-Request fehlgeschlagen.&apos; + #13#10 +\r\n            &apos;URL: &apos; + sURL\r\n          );\r\n      finally\r\n        Http.Free;\r\n      end;\r\n\r\n    end;\r\n
FbmRuleNode6NDI4D4CD9.Type=TFbmRuleNodeActionSource
FbmRuleNode6NDI4D4CD9.X=804
FbmRuleNode6NDI4D4CD9.Y=396
FbmRuleNode9XAIAZ4APM.Extended=0
FbmRuleNode9XAIAZ4APM.Field=5
FbmRuleNode9XAIAZ4APM.FlipNodes=0
FbmRuleNode9XAIAZ4APM.Locked=0
FbmRuleNode9XAIAZ4APM.Op=0
FbmRuleNode9XAIAZ4APM.SuccessNode=FbmRuleNode0M81447WHU
FbmRuleNode9XAIAZ4APM.Type=TFbmRuleNodeConditionItem
FbmRuleNode9XAIAZ4APM.Value=noreply@returnless.com
FbmRuleNode9XAIAZ4APM.X=552
FbmRuleNode9XAIAZ4APM.Y=-36
FbmRuleNodeBXMPG6CVPS.Extended=0
FbmRuleNodeBXMPG6CVPS.Field=1
FbmRuleNodeBXMPG6CVPS.FlipNodes=0
FbmRuleNodeBXMPG6CVPS.Locked=0
FbmRuleNodeBXMPG6CVPS.Op=2
FbmRuleNodeBXMPG6CVPS.SuccessNode=FbmRuleNodeHEMOVTCLYO
FbmRuleNodeBXMPG6CVPS.Type=TFbmRuleNodeConditionItem
FbmRuleNodeBXMPG6CVPS.Value=Retourenanfrage
FbmRuleNodeBXMPG6CVPS.X=804
FbmRuleNodeBXMPG6CVPS.Y=108
FbmRuleNodeHEMOVTCLYO.Extended=0
FbmRuleNodeHEMOVTCLYO.FailureNode=FbmRuleNodeOSUIXCON3X
FbmRuleNodeHEMOVTCLYO.Field=31
FbmRuleNodeHEMOVTCLYO.FlipNodes=0
FbmRuleNodeHEMOVTCLYO.Locked=0
FbmRuleNodeHEMOVTCLYO.Op=0
FbmRuleNodeHEMOVTCLYO.SuccessNode=FbmRuleNodeYT6PZGVGEE
FbmRuleNodeHEMOVTCLYO.Type=TFbmRuleNodeConditionItem
FbmRuleNodeHEMOVTCLYO.Value=4
FbmRuleNodeHEMOVTCLYO.X=552
FbmRuleNodeHEMOVTCLYO.Y=252
FbmRuleNodeMIMJYD3RAT.Extended=0
FbmRuleNodeMIMJYD3RAT.Locked=0
FbmRuleNodeMIMJYD3RAT.NextNode=FbmRuleNode5DEQE8PZGT
FbmRuleNodeMIMJYD3RAT.Type=TFbmRuleNodeActionRoot
FbmRuleNodeMIMJYD3RAT.X=552
FbmRuleNodeMIMJYD3RAT.Y=-324
FbmRuleNodeOSUIXCON3X.Extended=0
FbmRuleNodeOSUIXCON3X.Field=31
FbmRuleNodeOSUIXCON3X.FlipNodes=0
FbmRuleNodeOSUIXCON3X.Locked=0
FbmRuleNodeOSUIXCON3X.Op=0
FbmRuleNodeOSUIXCON3X.SuccessNode=FbmRuleNode6NDI4D4CD9
FbmRuleNodeOSUIXCON3X.Type=TFbmRuleNodeConditionItem
FbmRuleNodeOSUIXCON3X.Value=7
FbmRuleNodeOSUIXCON3X.X=804
FbmRuleNodeOSUIXCON3X.Y=252
FbmRuleNodeSPD1ZRL55L.Extended=0
FbmRuleNodeSPD1ZRL55L.Field=32
FbmRuleNodeSPD1ZRL55L.FlipNodes=0
FbmRuleNodeSPD1ZRL55L.Locked=0
FbmRuleNodeSPD1ZRL55L.Op=0
FbmRuleNodeSPD1ZRL55L.SuccessNode=FbmRuleNode9XAIAZ4APM
FbmRuleNodeSPD1ZRL55L.Type=TFbmRuleNodeConditionItem
FbmRuleNodeSPD1ZRL55L.Value=0
FbmRuleNodeSPD1ZRL55L.X=552
FbmRuleNodeSPD1ZRL55L.Y=-180
FbmRuleNodeYT6PZGVGEE.CustomSubject=Akzeptanz
FbmRuleNodeYT6PZGVGEE.Extended=0
FbmRuleNodeYT6PZGVGEE.Locked=0
FbmRuleNodeYT6PZGVGEE.Source=  begin\r\n    begin\r\n      begin\r\n        ExtractInternalId;\r\n\r\n        if Trim(sInternalId) = &apos;&apos; then\r\n        begin\r\n          Item.AddToProtocol(\r\n            &apos;[Returnless] FEHLER: Interne ID konnte nicht aus dem E-Mail-Body extrahiert werden.&apos; + #13#10 +\r\n            &apos;Referenz: &apos; + sRef\r\n          );\r\n          Exit;\r\n        end;\r\n\r\n        sURL := &apos;https://api-v2.returnless.com/2023-02/request-orders/&apos; + sInternalId + &apos;/approve&apos;;\r\n\r\n        Item.AddToProtocol(\r\n          &apos;[Returnless] Starte Genehmigung.&apos; + #13#10 +\r\n          &apos;Referenz:    &apos; + sRef + #13#10 +\r\n          &apos;Interne ID:  &apos; + sInternalId + #13#10 +\r\n          &apos;URL:         &apos; + sURL\r\n        );\r\n\r\n        Http := TFbmHttp.Create;\r\n        try\r\n          Http.ContentType := &apos;application/json&apos;;\r\n          Http.Headers.Values[&apos;Authorization&apos;] := &apos;Bearer &apos; + API_KEY;\r\n          Http.Headers.Values[&apos;Accept&apos;]        := &apos;application/json&apos;;\r\n\r\n          bSuccess := Http.PutEx(sURL, &apos;{}&apos;, sResponse);\r\n\r\n          if bSuccess then\r\n          begin\r\n            case Http.ResultCode of\r\n               200, 201, 204:\r\n                 Item.AddToProtocol(\r\n                  &apos;[Returnless] Rücksendung &apos; + sRef + &apos; erfolgreich genehmigt.&apos; + #13#10 //+\r\n                  //&apos;HTTP-Status: &apos; + IntToStr(Http.ResultCode) + #13#10 +\r\n                  //&apos;Antwort: &apos; + sResponse\r\n                 );\r\n              401:\r\n                Item.AddToProtocol(\r\n                  &apos;[Returnless] FEHLER 401 – Authentifizierung fehlgeschlagen.&apos; + #13#10 +\r\n                  &apos;Bitte API-Key in der Konstante API_KEY prüfen.&apos;\r\n                );\r\n              404:\r\n                Item.AddToProtocol(\r\n                  &apos;[Returnless] FEHLER 404 – Request-Order nicht gefunden.&apos; + #13#10 +\r\n                  &apos;Interne ID: &apos; + sInternalId\r\n                );\r\n              else\r\n                Item.AddToProtocol(\r\n                  &apos;[Returnless] FEHLER: Unerwarteter HTTP-Code &apos; + IntToStr(Http.ResultCode) + #13#10 +\r\n                  &apos;Antwort: &apos; + sResponse\r\n                );\r\n            end;\r\n          end\r\n          else\r\n            Item.AddToProtocol(\r\n              &apos;[Returnless] FEHLER: PUT-Request fehlgeschlagen.&apos; + #13#10 +\r\n              &apos;URL: &apos; + sURL\r\n            );\r\n        finally\r\n          Http.Free;\r\n        end;\r\n\r\n      end;\r\n    end;\r\n  end;
FbmRuleNodeYT6PZGVGEE.Type=TFbmRuleNodeActionSource
FbmRuleNodeYT6PZGVGEE.X=552
FbmRuleNodeYT6PZGVGEE.Y=396
</value></member><member><name>SourceCode</name><value>const
  API_KEY = &apos;5OfgxSpdOhEODs5yg1glo4UaxajSu6sjP4H4OYYZ61af80b2&apos;;

var
  Http        : TFbmHttp;
  sURL        : String;
  sRef        : String;
  sInternalId : String;
  sBody       : String;
  sResponse   : String;
  bSuccess    : Boolean;
  iStart      : Integer;
  iEnd        : Integer;

procedure ExtractInternalId;
begin
  sRef  := Item.UserFields.ItemsByName[&apos;Referenznummer&apos;].DataTypeValue;
  sBody := Item.TextViewData;

  iStart := Pos(&apos;%2Frequests%2F&apos;, sBody);
  if iStart &gt; 0 then
  begin
    iStart := iStart + Length(&apos;%2Frequests%2F&apos;);
    iEnd   := iStart;
    while (iEnd &lt;= Length(sBody)) and (sBody[iEnd] &lt;&gt; &apos;/&apos;) and (sBody[iEnd] &lt;&gt; &apos;&quot;&apos;) and (sBody[iEnd] &lt;&gt; &apos; &apos;) and (sBody[iEnd] &lt;&gt; #13) and (sBody[iEnd] &lt;&gt; #10) do
      iEnd := iEnd + 1;
    sInternalId := Copy(sBody, iStart, iEnd - iStart);
  end;
end;

begin
  if (Item.Kind = ikEmail) then
  begin
    if (Assigned(Item.From) and (AnsiSameText(Item.From.Identifier, &apos;noreply@returnless.com&apos;))) then
    begin
      if (AnsiStartsText(&apos;New request created&apos;, Item.Subject)) then
      begin
        if (Item.State = isDone) then
        begin
          begin
              begin
                begin
                  ExtractInternalId;
          
                  if Trim(sInternalId) = &apos;&apos; then
                  begin
                    Item.AddToProtocol(
                      &apos;[Returnless] FEHLER: Interne ID konnte nicht aus dem E-Mail-Body extrahiert werden.&apos; + #13#10 +
                      &apos;Referenz: &apos; + sRef
                    );
                    Exit;
                  end;
          
                  sURL := &apos;https://api-v2.returnless.com/2023-02/request-orders/&apos; + sInternalId + &apos;/approve&apos;;
          
                  Item.AddToProtocol(
                    &apos;[Returnless] Starte Genehmigung.&apos; + #13#10 +
                    &apos;Referenz:    &apos; + sRef + #13#10 +
                    &apos;Interne ID:  &apos; + sInternalId + #13#10 +
                    &apos;URL:         &apos; + sURL
                  );
          
                  Http := TFbmHttp.Create;
                  try
                    Http.ContentType := &apos;application/json&apos;;
                    Http.Headers.Values[&apos;Authorization&apos;] := &apos;Bearer &apos; + API_KEY;
                    Http.Headers.Values[&apos;Accept&apos;]        := &apos;application/json&apos;;
          
                    bSuccess := Http.PutEx(sURL, &apos;{}&apos;, sResponse);
          
                    if bSuccess then
                    begin
                      case Http.ResultCode of
                         200, 201, 204:
                           Item.AddToProtocol(
                            &apos;[Returnless] Rücksendung &apos; + sRef + &apos; erfolgreich genehmigt.&apos; + #13#10 //+
                            //&apos;HTTP-Status: &apos; + IntToStr(Http.ResultCode) + #13#10 +
                            //&apos;Antwort: &apos; + sResponse
                           );
                        401:
                          Item.AddToProtocol(
                            &apos;[Returnless] FEHLER 401 – Authentifizierung fehlgeschlagen.&apos; + #13#10 +
                            &apos;Bitte API-Key in der Konstante API_KEY prüfen.&apos;
                          );
                        404:
                          Item.AddToProtocol(
                            &apos;[Returnless] FEHLER 404 – Request-Order nicht gefunden.&apos; + #13#10 +
                            &apos;Interne ID: &apos; + sInternalId
                          );
                        else
                          Item.AddToProtocol(
                            &apos;[Returnless] FEHLER: Unerwarteter HTTP-Code &apos; + IntToStr(Http.ResultCode) + #13#10 +
                            &apos;Antwort: &apos; + sResponse
                          );
                      end;
                    end
                    else
                      Item.AddToProtocol(
                        &apos;[Returnless] FEHLER: PUT-Request fehlgeschlagen.&apos; + #13#10 +
                        &apos;URL: &apos; + sURL
                      );
                  finally
                    Http.Free;
                  end;
          
                end;
              end;
            end;
        end
        else
        begin
          if (Item.State = isRejected) then
          begin
            begin
                  ExtractInternalId;
            
                  if Trim(sInternalId) = &apos;&apos; then
                  begin
                    Item.AddToProtocol(
                      &apos;[Returnless] FEHLER: Interne ID konnte nicht aus dem E-Mail-Body extrahiert werden.&apos; + #13#10 +
                      &apos;Referenz: &apos; + sRef
                    );
                    Exit;
                  end;
            
                  sURL := &apos;https://api-v2.returnless.com/2023-02/request-orders/&apos; + sInternalId + &apos;/reject&apos;;
            
                  Item.AddToProtocol(
                    &apos;[Returnless] Starte Ablehnung.&apos; + #13#10 +
                    &apos;Referenz:    &apos; + sRef + #13#10 +
                    &apos;Interne ID:  &apos; + sInternalId + #13#10 +
                    &apos;URL:         &apos; + sURL
                  );
            
                  Http := TFbmHttp.Create;
                  try
                    Http.ContentType := &apos;application/json&apos;;
                    Http.Headers.Values[&apos;Authorization&apos;] := &apos;Bearer &apos; + API_KEY;
                    Http.Headers.Values[&apos;Accept&apos;]        := &apos;application/json&apos;;
            
                    bSuccess := Http.PutEx(sURL, &apos;{}&apos;, sResponse);
            
                    if bSuccess then
                    begin
                      case Http.ResultCode of
                        200, 201, 204:
                           Item.AddToProtocol(
                             &apos;[Returnless] Rücksendung &apos; + sRef + &apos; erfolgreich abgelehnt.&apos; + #13#10 //+
                             //&apos;HTTP-Status: &apos; + IntToStr(Http.ResultCode) + #13#10 +
                             //&apos;Antwort: &apos; + sResponse
                           );
                        401:
                          Item.AddToProtocol(
                            &apos;[Returnless] FEHLER 401 – Authentifizierung fehlgeschlagen.&apos; + #13#10 +
                            &apos;Bitte API-Key in der Konstante API_KEY prüfen.&apos;
                          );
                        404:
                          Item.AddToProtocol(
                            &apos;[Returnless] FEHLER 404 – Request-Order nicht gefunden.&apos; + #13#10 +
                            &apos;Interne ID: &apos; + sInternalId
                          );
                        else
                          Item.AddToProtocol(
                            &apos;[Returnless] FEHLER: Unerwarteter HTTP-Code &apos; + IntToStr(Http.ResultCode) + #13#10 +
                            &apos;Antwort: &apos; + sResponse
                          );
                      end;
                    end
                    else
                      Item.AddToProtocol(
                        &apos;[Returnless] FEHLER: PUT-Request fehlgeschlagen.&apos; + #13#10 +
                        &apos;URL: &apos; + sURL
                      );
                  finally
                    Http.Free;
                  end;
            
                end;
          end;
        end;
      end
      else
      begin
        if (AnsiStartsText(&apos;Retourenanfrage&apos;, Item.Subject)) then
        begin
          if (Item.State = isDone) then
          begin
            begin
                begin
                  begin
                    ExtractInternalId;
            
                    if Trim(sInternalId) = &apos;&apos; then
                    begin
                      Item.AddToProtocol(
                        &apos;[Returnless] FEHLER: Interne ID konnte nicht aus dem E-Mail-Body extrahiert werden.&apos; + #13#10 +
                        &apos;Referenz: &apos; + sRef
                      );
                      Exit;
                    end;
            
                    sURL := &apos;https://api-v2.returnless.com/2023-02/request-orders/&apos; + sInternalId + &apos;/approve&apos;;
            
                    Item.AddToProtocol(
                      &apos;[Returnless] Starte Genehmigung.&apos; + #13#10 +
                      &apos;Referenz:    &apos; + sRef + #13#10 +
                      &apos;Interne ID:  &apos; + sInternalId + #13#10 +
                      &apos;URL:         &apos; + sURL
                    );
            
                    Http := TFbmHttp.Create;
                    try
                      Http.ContentType := &apos;application/json&apos;;
                      Http.Headers.Values[&apos;Authorization&apos;] := &apos;Bearer &apos; + API_KEY;
                      Http.Headers.Values[&apos;Accept&apos;]        := &apos;application/json&apos;;
            
                      bSuccess := Http.PutEx(sURL, &apos;{}&apos;, sResponse);
            
                      if bSuccess then
                      begin
                        case Http.ResultCode of
                           200, 201, 204:
                             Item.AddToProtocol(
                              &apos;[Returnless] Rücksendung &apos; + sRef + &apos; erfolgreich genehmigt.&apos; + #13#10 //+
                              //&apos;HTTP-Status: &apos; + IntToStr(Http.ResultCode) + #13#10 +
                              //&apos;Antwort: &apos; + sResponse
                             );
                          401:
                            Item.AddToProtocol(
                              &apos;[Returnless] FEHLER 401 – Authentifizierung fehlgeschlagen.&apos; + #13#10 +
                              &apos;Bitte API-Key in der Konstante API_KEY prüfen.&apos;
                            );
                          404:
                            Item.AddToProtocol(
                              &apos;[Returnless] FEHLER 404 – Request-Order nicht gefunden.&apos; + #13#10 +
                              &apos;Interne ID: &apos; + sInternalId
                            );
                          else
                            Item.AddToProtocol(
                              &apos;[Returnless] FEHLER: Unerwarteter HTTP-Code &apos; + IntToStr(Http.ResultCode) + #13#10 +
                              &apos;Antwort: &apos; + sResponse
                            );
                        end;
                      end
                      else
                        Item.AddToProtocol(
                          &apos;[Returnless] FEHLER: PUT-Request fehlgeschlagen.&apos; + #13#10 +
                          &apos;URL: &apos; + sURL
                        );
                    finally
                      Http.Free;
                    end;
            
                  end;
                end;
              end;
          end
          else
          begin
            if (Item.State = isRejected) then
            begin
              begin
                    ExtractInternalId;
              
                    if Trim(sInternalId) = &apos;&apos; then
                    begin
                      Item.AddToProtocol(
                        &apos;[Returnless] FEHLER: Interne ID konnte nicht aus dem E-Mail-Body extrahiert werden.&apos; + #13#10 +
                        &apos;Referenz: &apos; + sRef
                      );
                      Exit;
                    end;
              
                    sURL := &apos;https://api-v2.returnless.com/2023-02/request-orders/&apos; + sInternalId + &apos;/reject&apos;;
              
                    Item.AddToProtocol(
                      &apos;[Returnless] Starte Ablehnung.&apos; + #13#10 +
                      &apos;Referenz:    &apos; + sRef + #13#10 +
                      &apos;Interne ID:  &apos; + sInternalId + #13#10 +
                      &apos;URL:         &apos; + sURL
                    );
              
                    Http := TFbmHttp.Create;
                    try
                      Http.ContentType := &apos;application/json&apos;;
                      Http.Headers.Values[&apos;Authorization&apos;] := &apos;Bearer &apos; + API_KEY;
                      Http.Headers.Values[&apos;Accept&apos;]        := &apos;application/json&apos;;
              
                      bSuccess := Http.PutEx(sURL, &apos;{}&apos;, sResponse);
              
                      if bSuccess then
                      begin
                        case Http.ResultCode of
                          200, 201, 204:
                             Item.AddToProtocol(
                               &apos;[Returnless] Rücksendung &apos; + sRef + &apos; erfolgreich abgelehnt.&apos; + #13#10 //+
                               //&apos;HTTP-Status: &apos; + IntToStr(Http.ResultCode) + #13#10 +
                               //&apos;Antwort: &apos; + sResponse
                             );
                          401:
                            Item.AddToProtocol(
                              &apos;[Returnless] FEHLER 401 – Authentifizierung fehlgeschlagen.&apos; + #13#10 +
                              &apos;Bitte API-Key in der Konstante API_KEY prüfen.&apos;
                            );
                          404:
                            Item.AddToProtocol(
                              &apos;[Returnless] FEHLER 404 – Request-Order nicht gefunden.&apos; + #13#10 +
                              &apos;Interne ID: &apos; + sInternalId
                            );
                          else
                            Item.AddToProtocol(
                              &apos;[Returnless] FEHLER: Unerwarteter HTTP-Code &apos; + IntToStr(Http.ResultCode) + #13#10 +
                              &apos;Antwort: &apos; + sResponse
                            );
                        end;
                      end
                      else
                        Item.AddToProtocol(
                          &apos;[Returnless] FEHLER: PUT-Request fehlgeschlagen.&apos; + #13#10 +
                          &apos;URL: &apos; + sURL
                        );
                    finally
                      Http.Free;
                    end;
              
                  end;
            end;
          end;
        end;
      end;
    end;
  end;
end.
</value></member><member><name>Compiled</name><value><boolean>1</boolean></value></member><member><name>LockData</name><value></value></member><member><name>Created</name><value><dateTime.iso8601>20260521T15:17:35</dateTime.iso8601></value></member><member><name>Modified</name><value><dateTime.iso8601>20260806T09:50:52</dateTime.iso8601></value></member></struct></data></greyhoundFile>