特定の「業務データ」のデータ型を変換したい。
特定の「業務データ」のプロパティとしての文字数を取得したい。
基本的な話として、「ワークフローシステム」は業務データの「受け渡し」を自動化する。ただ「受け渡し」だけでなく、「作業そのもの」についても出来る範囲で自動化(無人化)したいものだ。特に「機械的な作業」であれば尚更。。。
クラウド型ワークフロー『Questetra BPM Suite』の場合、
- 文字列Aと文字列Bを結合する(M227)
- 数値Aと数値Bを足す(M227)
- 文字列を台紙 PDF に挿入された PDF を生成する(M228)
- ファイルを Google Drive に保存する(M229)
たとえば、以下のワークフローにある『文字数カウンタ』は、上流工程で入力された文字列型データXについて、(サーバサイドにて)、その文字数を数え、数値型データYに格納させる自動工程だ。こういった場合には[スクリプト工程](スクリプトタスク)(M230)と呼ばれる万能工程を配置し、スクリプト(ECMA-Script/JavaScript)をセットする必要がある。(Ver. 11.0 時点では…)
[文字数カウンタ]
[文字数カウンタ:「1.原稿セット」画面]
ここでセットすべきスクリプトは非常に短いものになるだろう。具体的に「文字数を数える部分」を想像すれば、
var countA = myText.length;と書くだけでも良い。しかし、現実の業務において何文字と数えるべきか?は悩ましいケースも少なくない。それは業種や文化によって考え方が大きく異なるのだ。
- 論文の査読
- HTMLの校正
- プログラム・レビュー
- プレス原稿のレビュー
たとえば、以下のような文字列を何文字と数えるべきか? (便宜的に全角空白を「_」で表示)
1234567890 12345678 0 12345678_0 1234567 _0「改行」は文字でないと考える業種は多いだろう。「見やすさの為に入力した改行や連続空白など」については文字数としてカウントすべきではないと考える業種もあるだろう。日本語原稿であれば「全角空白」や「半角空白」を文字としてカウントしないと考えるかも知れない。
つまるところ、自社における「文字数のカウント方法」をあらかじめ決めておく必要がある。
▼スクリプト工程『文字数カウンタ』の設定サンプル (サーバサイド JavaScript)
//// == ワークフローデータの参照 / Retrieving == var myText = data.get("q_mytext") + ""; // JavaScript String //// == 演算 / Calculating == var countA = myText.length; var countB = myText.replace(/\r|\n/g, "").length; var countC = myText.replace(/\r|\n/g, "") .replace(/\s+/g," ").length; var countD = myText.replace(/\r|\n/g, "") .replace(/\s/g,"").length; //注)タブや全角空白なども「\s」に含まれる(UTF-8) //// == ワークフローデータへの代入 / Updating == retVal.put("4", java.math.BigDecimal( countA ) ); retVal.put("5", java.math.BigDecimal( countB ) ); retVal.put("6", java.math.BigDecimal( countC ) ); retVal.put("7", java.math.BigDecimal( countD ) );
▼ブラウザ側にも『文字数カウンタ』を実装してみた例(HTML/JavaScript)
<span id="myCounter">0</span> <script type="text/javascript"> jQuery('textarea[name="data[0].input"]').bind('keyup change',function(){ var myTextLength = jQuery(this).val().length; jQuery('#myCounter').html( myTextLength ); }); </script>
<データ項目一覧画面>
[雛形ダウンロード (無料)]
- 業務テンプレート:文字数カウンタ
- 第479話:スクリプト工程に「日割り計算」をさせるときの注意 (2016-04-18)
- 申請された立替データを、直接修正しない! (2015-05-11)
- 翻訳ワークフローを「プラットフォーム化」しよう! (2015-04-13)
- M415 自動工程: 業務プロセスの定義(モデリング)に利用できる自動工程を追加する (使い方)
- M230 自動工程: 業務データの複雑なデータ加工が自動実行されるように設定する(ECMAスクリプト) (使い方)
- M401 業務の流れ: 申請と差戻対応の工程を分け “手戻り” をモニタリングしやすいように設定する (使い方)
[英文記事 (English Entry) ]
0 件のコメント :
コメントを投稿