Google Cloud Print ジョブ送信

ファイル型データ項目で指定したファイルを指定のプリンタで印刷し、通信ログを文字型データ項目に格納します

    A. OAuth2通信許可設定名 (←[OAuth 2.0 設定])単一行記述必須
    B. Printer ID が格納されている文字列型データor選択肢型データを選択してください(存在しない場合、エラー)データ項目選択文字列型(単一行)or選択型(ラジオ/セレクト/検索)必須
    C. Printファイルが格納されているファイル型データを選択してくださいデータ項目選択ファイル型必須
    D. Cloud Job Ticket が格納されている文字列型データor選択肢型データを選択してくださいデータ項目選択文字列型(単一行)or選択型(ラジオ/セレクト/検索)
    X. 通信ログが格納される文字列型データを選択してください (更新)データ項目選択文字列型(複数行)
    -設定変数名設定ラベル
    Aconf_OAuth2OAuth2通信許可設定名 (←[OAuth 2.0 設定])
    Bconf_DataIdBPrinter ID が格納されている文字列型データor選択肢型データを選択してください(存在しない場合、エラー)
    Cconf_DataIdCPrintファイルが格納されているファイル型データを選択してください
    Dconf_DataIdDCloud Job Ticket が格納されている文字列型データor選択肢型データを選択してください
    Xconf_DataIdX通信ログが格納される文字列型データを選択してください (更新)
    // Submit a Print Job via Google Cloud Print Service (ver. 20161107)
    // (c) 2016, Questetra, Inc. (the MIT License)
    
    //// == 工程コンフィグの参照 / Config Retrieving ==
    var oauth2 = configs.get( "conf_OAuth2" );
    var dataIdB = configs.get( "conf_DataIdB" ); // (returns Number)
    var dataIdC = configs.get( "conf_DataIdC" ); // (returns Number)
    var dataIdD = configs.get( "conf_DataIdD" ); // (returns Number)
    var dataIdX = configs.get( "conf_DataIdX" ) + ""; // (returns Number)
    
    //// == ワークフローデータの参照 / Data Retrieving ==
    var printerId = "";
    if( data.get( dataIdB ) instanceof java.util.ArrayList ){
      printerId = data.get( dataIdB ).get(0).getValue() + "";
    }else if( data.get( dataIdB ) instanceof java.lang.String ){
      printerId = data.get( dataIdB ) + "";
    }
    var files = data.get( dataIdC );
    var cloudJobTicket = "";
    if( data.get( dataIdD ) instanceof java.util.ArrayList ){
      cloudJobTicket = data.get( dataIdD ).get(0).getValue() + "";
    }else if( data.get( dataIdD ) instanceof java.lang.String ){
      cloudJobTicket = data.get( dataIdD ) + "";
    }
    if( cloudJobTicket === "" ){
      cloudJobTicket = '{"version": "1.0", "print": {}}';
    }
    var jobTitle = "Questetra-" + processInstance.getProcessInstanceId() + "";
    
    //// == 演算 / Calculating ==
    var accessLog = "";
    var token = httpClient.getOAuth2Token( oauth2 );
    
    for( var i = 0; i < files.size(); i++  ){
      var uri = "https://www.google.com/cloudprint/submit";
      var response = httpClient.begin()
        .bearer( token )
        .multipart( "printerid", printerId )
        .multipart( "title", jobTitle )
        .multipart( "ticket", cloudJobTicket )
        .multipart( "content", files.get(i) )
        .post( uri );
      accessLog += "---POST request--- " + response.getStatusCode() + "\n";
      accessLog += response.getResponseAsString() + "\n";
    }
    
    //// == ワークフローデータへの代入 / Data Updating ==
    if( dataIdX !== "" ){
      retVal.put( dataIdX, accessLog );
    }
    

    • B’: Bで選択したデータ項目に格納されている Printer ID
    • C’: Cで選択したデータ項目に格納されているファイル
    • D’: Dで選択したデータ項目に格納されている Cloud Job Ticket
    • ファイル群 C’ が、指定のプリンタで印刷されます
    • 通信ログが X で選択したデータ項目に格納されます
    • 事前に Google API Manager にて OAuth2 通信を登録をしておく必要があります
    • Cloud Job Ticketが無指定の場合、プリンタの標準設定{"version": "1.0", "print": {}}で印刷されます
    • モノクロ2部: {"version":"1.0","print":{"vendor_ticket_item": [],"color":{"type": "STANDARD_MONOCHROME"}, "copies": {"copies": 2}}}
    • シングル版は自動工程コンフィグにて Printer ID を固定的に指定します