ドーセット氏はPythonでsmartsheet APIを使用してシートをコピーした際の行のコピー、移動のオートメーション・ルールの破損ということについて質問し、これに対し、Sheet Summaryにコピー、移動先にシート名を保存し、それを活用して手動でのワークフロー編集することや、APIによらぬワークフローを含むシートのコピーを提案すると回答した。
ユーザーの質問の要約
ユーザーの質問の要約
ドーセット氏は、Pythonでsmartsheet APIを使って特定のシートをコピーし、新しい保存先に保存しています。このプロセスは正常に動作しますが、オートメーション・ルールがコピーされた新しいシートで破損してしまいます。「ワークフローが無効です」というエラーメッセージが表示される。
私の答えの要約
Python SDKを使ってテストした結果、コピーされたシートのワークフローが正しくコピーされないことを確認しました。解決策として、ワークフローを手動で編集する必要があること、およびSheet Summaryにワークフローのコピー先シート名のフィールドを作成する方法を提案しています。
質問と回答の詳細
質問
ドーセット ✭ ✭ ドーセット
05/06/23
こんにちは、Pythonでsmartsheet APIを使用するのに苦労しています。
smartsheet_client.Sheets.copy_sheet(…)を使って、特定のシートをIDでコピーし、新しい保存先フォルダにコピーしようとしています。これは問題なく動作し、新しい場所と新しい名前でシートを作成することができます。
問題は、このシートにはいくつかのオートメーション・ルールがあり、シートを「アーカイブ」し、いくつかの行を別のシートに保存し、記録を残すようになっていることだ。
Pythonでシートをコピーするたびに、自動化ルールが壊れ、新しいシートで’ワークフローが無効です’と表示されます。
回答
jmyzk_cloudsmart_jp ✭✭✭✭
05/08/23
こんにちは。おっしゃる通りです。
Python SDK を使ってテストしたところ、コピーされたシートのワークフローはコピーまたは移動アクションのターゲットシート名をコピーせず、<不明なシート>と表示されました。
コピー先シート名を変更するには、ワークフローを手動で編集する必要があります。
編集を簡単にするために、Sheet Summaryにワークフローのコピー先シート名のフィールドを作るなどの方法があります。
APIシートコピーでコピー先シート名がコピーされない.png
😀
ドーセット
05/09/23
返信ありがとうございます!はい、私の問題を発見してくれました。https://community.smartsheet.com/discussion/68744/automation-based-on-sheet-summary、オートメーション内でシートサマリデータを使用する方法はないと書かれています。<unknown sheet>をクリックすると、ロジックは使用できず、シートを選択することしかできません。
オートメーション・ルールを解除させ、update_automation_rule(…)とおそらく’action’フィールドを使用してボックスの内容を変更し、目的シートIDを再度与えることが1つの解決策になると思いました。正確な構文はわかりません。
次の問題は、これは新しくコピーされ作成されたシートなので、自動化ルールのIDをハードコードすることができません。IDを取得しようとしてlist_automation_rules(…)を使用すると、ルールの1つ(一番最後のもの)しか得られません。また、新しい切れ目のないルールを作成し、それらをアクティブ、非アクティブにしてみましたが、違いはありませんでした。
jmyzk_cloudsmart_jp ✭✭✭✭
05/09/23
こんにちは。残念ながら、Smartsheet API では、承認、通知、更新要求以外のワークフロー自動化ルールの作成または更新をサポートしていません。
https://smartsheet.redoc.ly/tag/automationRulesDescription
オートメーションとは、承認、通知、更新リクエストの総称である。APIを通じて、さまざまな自動化設定を削除、更新、取得できます。プログラムで新しい自動化ルールを作成することはできません。
すべてのワークフロー ルールに API サポートがないことは、非常に残念なことです。参考までに、Smarthseet APIは’フォーム’をサポートしていません。
私が提案した Sheet Summary フィールドの使用は、API 使用のためではなく、ワークフロー ルールの手動編集のためです。
シートを手動でコピーする場合、コピーされたシートには、コピーや行の移動アクションを含む有効なワークフローがあります。手動でシートをコピーすることと、手動でワークフローを編集することのトレードオフを考慮してください。
ドーセット
05/09/23
@jmyzk_cloudsmart_jp 、私のプロジェクトにとって最高のニュースではないのは確かだが、それにもかかわらず、このトピックに関するあなたの知識にとても感謝している。
まとめ
Smartsheet APIを使用してシートをコピーすると、行のコピー、移動のオートメーション・ルールに問題が生じる可能性がある。この問題の解決策として、Sheet Summaryにコピー、移動先にシート名を保存し、それを活用して手動でのワークフロー編集することや、APIによらぬワークフローを含むシートのコピーを提案すると回答した。これはAPIの制限に起因する問題であり、APIの使用を検討している他のユーザーは、この制限を理解し、対応策を検討する必要がある。