プロセスでのバーコードデータの使用

プロセスでバーコードフォームサービスを使用すると、スキャンした画像(TIFF または PDF ファイル)からバーコードデータを抽出し、そのデータを XML 形式に変換してプロセスで使用できます。

このクイックスタートは、バーコードフォームサービスに関する十分な知識がある方を対象としています。このサービスに関する詳細は、『 AEM forms サービスリファレンス 』を参照してください。

例えば、大学のビジネスプロセスで、学生が成績表の名前やステータスを変更するためにバーコード付きのフォームを使用しているとします。フォーム上の 2 つのバーコードで、学生がフォームに入力する情報をキャプチャします。

  • 一方のバーコードは、名前とステータスのどちらを変更するのかを示すドロップダウンメニューの情報をキャプチャします。

  • もう一方のバーコードは、学生の名前またはステータスの変更の詳細についてキャプチャします。

バーコードフォームサービスは、バーコードを読み取り、そこに含まれている情報を処理するために使用されます。

次の図に、バーコードの読み取りとデータの処理に使用されるプロセスダイアグラムを示します。データの処理は、変更の対象が名前かステータスかによって異なります。「Extract Content」操作のルートには、データの処理方法を決定するための条件があります。

「Decode Form」操作はバーコードを読み取り、データを XML として保存します。データには、バーコードに関するメタデータとフォームデータが含まれています。フォームデータは、区切られたテキスト形式で content 要素に含まれています。

次の XML は、「Decode Form」操作によって生成される出力の例です。各バーコードのデータは、個別に barcode 要素に設定されています。

  • id 属性値が 1 に設定された barcode 要素は、バーコードに名前またはステータス変更の詳細が含まれていることを表します。

  • id 属性値が 2 に設定された barcode 要素は、名前またはステータス変更が送信されたかどうかを示すドロップダウンメニューの値がバーコードに含まれていることを表します。

    <?xml version="1.0" encoding="UTF-8"?> 
    <xb:scanned_image 
                            xmlns:xb="http://decoder.barcodedforms.adobe.com/xmlbeans" 
                            path="tiff" version="1.0"> 
        <xb:decode> 
            <xb:date>2007-07-25T11:48:22.639-04:00</xb:date> 
            <xb:host_name>Win2K3-LC8</xb:host_name> 
            <xb:status type="success"> 
            <xb:message/> 
            </xb:status> 
        </xb:decode> 
        <xb:barcode id="1"> 
            <xb:header symbology="pdf417"> 
                <xb:location page_no="1"> 
                    <xb:coordinates> 
                        <xb:point x="0.119526625" y="0.60945123"/> 
                        <xb:point x="0.44457594" y="0.60945123"/> 
                        <xb:point x="0.44457594" y="0.78445125"/> 
                        <xb:point x="0.119526625" y="0.78445125"/> 
                    </xb:coordinates> 
                </xb:location> 
            </xb:header> 
            <xb:body> 
                <xb:content encoding="utf-8">t_SID t_FirstName t_MiddleName 
                                                                t_LastName t_nFirstName t_nMiddleName 
                                                                t_nLastName &#13;90210 Patti Y Penne 
                                                                Patti P Prosciutto  
                </xb:content> 
            </xb:body> 
        </xb:barcode> 
        <xb:barcode id="2"> 
            <xb:header symbology="pdf417"> 
                <xb:location page_no="1"> 
                    <xb:coordinates> 
                        <xb:point x="0.119526625" y="0.825"/> 
                        <xb:point x="0.44457594" y="0.825"/> 
                        <xb:point x="0.44457594" y="0.9167683"/> 
                        <xb:point x="0.119526625" y="0.9167683"/> 
                    </xb:coordinates> 
                </xb:location> 
            </xb:header> 
            <xb:body> 
                <xb:content encoding="utf-8">t_FormType t_FormVersion 
                                                                &#13;ChangeName 20061128  
                </xb:content> 
            </xb:body> 
        </xb:barcode> 
    </xb:scanned_image>

フォームデータは文字で区切られたテキストなので、情報の解析や抽出は困難です。そのため、「Extract Content」操作は XML 形式のデータを解析および保存するために使用されます。XML 形式では、XPath 式を使用して特定のデータ項目にアクセスできます。

次の XML は、フォーム上の最初のバーコード ( id = 1 )から「Extract Content」操作で生成された出力の例です。

    <?xml version="1.0" encoding="UTF-8"?> 
    <xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/"  
                    xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/"> 
        <xfa:datasets> 
            <xfa:data> 
                <form1> 
                    <t_SID>90210</t_SID> 
                    <t_FirstName>Patti</t_FirstName> 
                    <t_MiddleName>Y</t_MiddleName> 
                    <t_LastName>Penne</t_LastName> 
                    <t_nFirstName>Patti</t_nFirstName> 
                    <t_nMiddleName>P</t_nMiddleName> 
                    <t_nLastName>Prosciutto</t_nLastName> 
                </form1> 
            </xfa:data> 
        </xfa:datasets> 
    </xdp:xdp>

次の XML は、フォーム上の 2 番目のバーコード ( id = 2 )から「Extract Content」操作で生成された出力の例です。

    <?xml version="1.0" encoding="UTF-8"?> 
    <xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/" 
                    xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/"> 
        <xfa:datasets> 
            <xfa:data> 
                <form1> 
                    <t_FormType>ChangeName</t_FormType> 
                    <t_FormVersion>20061128 </t_FormVersion> 
                </form1> 
            </xfa:data> 
        </xfa:datasets> 
    </xdp:xdp>

「Extract Content」操作のルートには、次に実行する操作を決定するための条件があります。この条件は、2 番目のバーコードに含まれる t_FormType 要素のコンテンツを使用して、有効なルートを判断します。この要素のコンテンツは、学生が名前またはステータスを変更するためにフォームで選択したオプションを表しています。このデータは XML 形式であるため、コンテンツは XPath 式を使用して取得できます。例えば、次の XPath 式は t_FormType 要素のコンテンツを取得します。

/process_data/contentList[2]/xdp:xdp/xfa:datasets/xfa:data/form1/t_FormType
contentList は XML データを含む list 変数です。この例では、この変数に「Extract Content」操作の出力が保存されます。

前提条件

「Decode」操作を使用するには、プロセスの実行時にバーコードを利用できる必要があります。バーコードは画像ファイル(TIF 形式)として、または対応可能なバーコードを含む埋め込み PDF ファイル(フラット PDF)として指定できます。スキャンされたバーコード画像から作成された PDF ドキュメントも使用できます。

バーコードフォームサービスは、次の TIF 形式をサポートします。

  • binary

  • グレースケール

  • RGB カラー

  • LZW 圧縮

  • JPEG 圧縮

  • CCITT Group 3 および Group 4 圧縮

この例のプロセスでは、プロセスを呼び出すために監視フォルダーエンドポイントを作成できます。プロセスインスタンスを作成するために、バーコードを含むファイルが監視フォルダーにコピーされます。

設定

この例のプロセス内の「Decode」操作は、バーコードフォームサービスが提供する「Decode」操作のインスタンスです。この操作には、入力として次のデータ項目が必要です。

  • デコード対象のバーコードを 1 つ以上含む、PDF ドキュメントまたは TIF 画像を表す document 値。

    監視フォルダーをプロセスエンドポイントとして使用すると、指定されたファイルが自動的に document 値に変換されます。

  • バーコードに使用するコード。

    この例のプロセスでは PDF417 バーコードを使用しています。

「Decode」操作の結果は XML データとして提供されます。 xml 変数を作成してデータの保存に使用する必要があります。

この例のプロセス内の「Extract to XML」操作は、バーコードフォームサービスが提供する「Extract to XML」操作のインスタンスです。この操作には、入力として次のデータ項目が必要です。

  • 「Decode」操作で生成された XML ドキュメントを表す org.w3c.dom.Document 値。

    例のプロセス内の「Decode」操作の出力が保存された xml 変数を、この入力値として使用できます。

  • バーコードデータで使用される区切り文字に関する情報。

    この例のバーコードデータは、タブ文字でフィールド値を区切り、キャリッジリターン文字でフィールド名の行とフィールド値の行を区切っています。

「Extract to XML」操作の結果は、 xml 値を含む list 値として提供されます。 list 内の各項目は、処理された各バーコードのデータを表しています。

その他の考慮事項

「Convert to XML」操作でデータの互換性を最大限確保するには、フォーム開発者はバーコードデータを単純な形式で区切るように選択する必要があります。例えば、Workbench のフォームデザイン機能では、タブ文字でフィールドを区切り、1 行の各フィールド名と次の行のフィールド値を使用してバーコードをエンコードできます。この形式を使用すると、プロセス開発者は「Extract to XML」操作で、フィールドの区切り文字としてデフォルト値のタブを使用できます。

「Decode」操作をプロセスダイアグラムに追加すると、操作はデフォルトで例外イベントをキャッチします。操作を実行したときにエラーが発生した場合、イベントのキャッチを使用して代替のアクティビティを実行できます。