Delphi Xe 10.3 釘釘SDK開發——審批流接口(獲取表單ProcessCode)


開發釘釘審批流時,需要用到釘釘表單的Processcode,有兩種方法 :

一、手動獲取:

管理員后台——審批——找到對應的表單:如圖:

 

 

 

 

ProcessCode后面就是了!

二、接口獲取:今天的重點,不說了,直接上代碼。

function TDingtalkNew.GetProcessCode(ProcessName: string): string;
const
  ProcessCodeAPI: string = 'https://oapi.dingtalk.com/topapi/process/get_by_name';
var
  HttpClient: TNetHTTPClient;
  Params: TStringList;
  Response: TStringStream;
var
  JO: TJSONObject;
  errcode: string; //返回代碼
begin
  HttpClient := TNetHTTPClient.Create(nil);
  Params := TStringList.Create();
  Response := TStringStream.Create('', 65001);
  try
    Params.Add('access_token=' + Token);
    Params.Add('name=' + ProcessName);
    HttpClient.post(ProcessCodeAPI, Params, Response);
    JO := TJSONObject.ParseJSONValue(Response.DataString) as TJSONObject;
    try
      if JO <> nil then
      begin
        JO.TryGetValue<string>('errcode', errcode);
        if errcode.ToInteger = 0 then
        begin
//          Result := Response.DataString;
          JO.TryGetValue<string>('process_code', Result);
        end
        else
        begin
          JO.TryGetValue<string>('errmsg', Result);
          //這里最好做日志記錄錯誤信息
        end;
      end;
    finally
      JO.Free;
    end;
  finally
    HttpClient.Free;
    Params.Free;
    Response.Free;
  end;

end;

下面就是調用了:

procedure TMainForm.ToolButton6Click(Sender: TObject);
var
  dk: TDingtalkNew;
begin
  dk := TDingtalkNew.Create;
  try
    dk.Getappid := '你企業釘釘的APPID';
    dk.Getappsecret := '你企業釘釘的Appsecret';
    Log.Debug(dk.GetProcessCode('ERP客戶訂單'),'debug');
  finally
    dk.Free;
  end;
end;

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM