フロントライン作業者用のアプリケーションを作成してコンテナーの状態の更新を効率化する
キャンバス Power App を構築する
目標は、フロントライン作業者の作業を効率化することです。 画像を撮影して、コンテナー ID を自動的に認識し、状態、出荷、着荷の日付を更新するためのガイド付きのエクスペリエンスを提供できるキャンバス Power Apps (Power Apps のキャンバスアプリとはを参照) を作成します。
左のメニューのPower Apps の [作成] を使用し、[一からのキャンバスアプリ] を使用して、Contoso Container チェックインという名前を付けます。[電話] を選択し、[作成] をクリックします。
写真から識別子を取得する
John と Chandra がコンテナーの写真を撮り、コンテナー ID を自動的に取得できるようにします。 [挿入] メニューと [AI Builder] バーで、[テキスト レコグナイザー] を選択します。 このコントロールでは、画像を撮影またはアップロードして、コンテナー ID を自動的に認識できるようにします。
画面に合うようにコントロールのサイズを変更し、ラベルを上部に挿入します。Text プロパティを [コンテナー チェックイン] に編集し、青背景を青色、テキストを白色で中央揃えにします。
フィードバックを提供する
認識された内容についてのフィードバックをユーザーに提供する必要があります。 下部の [新しいラベルの挿入] を選択し、Text プロパティを [選択されたコンテナー] に変更します。
Text Input を挿入したうえで、[Default] プロパティを [TextRecognizer1 SelectedText] に変更します。
注
TextRecognizer1.OcrObjects で認識されたすべてのテキストを取得し、それをテーブルにバインドすることができます。
これにより、AI Builder によって認識されたテキストの一覧からユーザーによって手動で選択されたテキストが表示されます。
最終的には、このコンテナーの詳細を表示して、ガイド付きの更新プログラムを入力するためのボタンが必要になります。
ボタンの挿入
- Text プロパティを [送信] に変更します。
- Fill プロパティを青色に変更する
- Align プロパティを中央揃えに変更する
- ユーザーが送信をクリックしたときに次の画面に移動するには、[OnSelect] を [Navigate(Screen2)] に変更します。 (次の画面が作成されるまでエラーが発生します)
次のように表示されます。
作業の効率化
要求される情報を最小限にして現場作業者の作業を効率化するために、ユーザーがテーブル データを更新でき、出荷のこのステージで関連する情報のみを作業者に要求できるようにする、ガイド付きのエクスペリエンスを提供します。 新しいフォーム画面の挿入 (キャンバス アプリにスクリーンを追加し、スクリーン間を移動するを参照)
タイトルの [Text] プロパティを [出荷の更新] に変更します。
EditForm1 を編集します (キャンバス アプリにレコードを表示、編集、または追加するを参照)。
編集フォームを以前に作成したテーブルにバインドするには、[ビューのデータに接続する] をクリックし、左ウィンドウの [Container Shipments] を選択します。**
[DataSource] プロパティを [Container Shipments] に変更する
フォームに表示されるフィールドに入力します
右側のペインで、[フィールドの編集] をクリックし、[配送元]、[出荷日]、[配送先]、[着荷日]、[取り扱い注意]、[配送状態] をそれぞれ追加して、[作成日] を削除します。
ガイド付きのエクスペリエンスの提供
出荷の状態に応じて、関連するフィールドに対してのみ変更を表示し、変更を許可する必要があります。 この場合、ユーザーは、コンテナーを出荷したときに [出荷日] と [着荷日] を変更します。この場合、他のフィールドは更新できない状態で非表示になります。** 表示するには、[名前]、[配送元]、[配送先]、[取り扱い注意]、[配送状態] の [DisplayMode] を変更します。
適切なコンテナー情報を表示します。
ユーザーによって以前に選択されたテキストに対応する 1 つのテキストを取得します。** これを行うには、詳細プロパティで、EditForm1 to First(Filter('Container Shipments', Name = TextInput1.Text)) の Item プロパティを設定します。
コンテナーの状態によって、画面の動作は異なります。 出荷が行われるのを待っている場合、ユーザーは、[出荷日] を変更したり、受け取ったときに [着荷日] に変更したりすることができます。
"Shipping Date_DataCard1" を編集する (左ウィンドウのプロパティのロックを解除する カードのロック解除とカスタマイズを参照)。
ユーザーに出荷日の入力を強制するには、Required プロパティを True に変更します
ユーザーは出荷後の出荷日を変更することはできません。 出荷を待っている場合にのみ編集可能にします。 次のように DisplayMode プロパティを変更することによって、これを実現できます。
If(ThisItem.'Delivery State' <> ContainerStates.Waiting, DisplayMode.View, DisplayMode.Edit)
[着荷の日付_DataCard1] の 編集 (左ウィンドウのプロパティのロックを解除)
着荷データは、コンテナーが受信または配信されるときにのみ関連するので、この場合にのみ表示されます。 Visible プロパティを ThisItem.'Delivery State'<> ContainerStates.Waiting に変更します。
コンテナーを受け取ったときにユーザーに出荷日の入力を強制するには**、Required プロパティを True に変更します。
ThisItem.'Delivery State'<> ContainerStates.Waiting
この到着日は、コンテナーの受信後に変更する必要があります。それ以外の場合は、そのままの状態で表示します。 DisplayMode プロパティを次のように変更します。
If(ThisItem.'Delivery State'= ContainerStates.Delivered,DisplayMode.View, DisplayMode.Edit)
次に、ユーザーが変更を送信したときに状態を更新するためのロジックを構築し、コンテナーが配送された後に変更が行われることを防止する必要があります。
Edit "IconAccept1"
コンテナーが出荷されるときに状態を In Transit に変更し、受け取りと変更を実行中に配達済みに変更するには、OnSelect プロパティを以下のように変更します。
If(First(Filter('Container Shipments', Name = TextInput1.Text)).'Delivery State'= ContainerStates.Waiting, Set(valState, ContainerStates.'In Transit'), Set(valState, ContainerStates.Delivered));SubmitForm(EditForm1);
コンテナーが既に出荷されている場合に [送信] ボタンを表示しないようにするには、Visible プロパティを次のように変更します。
'Delivery State_DataCard1'.Default <> ContainerStates.Delivered
コンテナーの状態を自動的に更新するには、
*edit "Delivery State_DataCard1" (unlock the properties on the left pane) change the "Update" property to valState
変更が正常に送信または変更がキャンセルされた後に、前の画面に移動する必要があります。 また、画面に入力するたびにフォームがリセットされるようにする必要があります。
画面の入力時にフォームを更新するには、
** edit "Screen2" and change "OnVisible" property to Refresh('Container Shipments');ResetForm(EditForm1);
変更が適用されたときにスキャン画面に戻るには、以下のように編集します
"EditForm1"
また、変更を行います
"OnSuccess" property to Navigate('Screen1')
ユーザーが [キャンセル] ボタンを押したときにスキャン画面に戻るには、** IconCancel1 を編集し、OnSelect プロパティを Navigate('Screen1') に変更します
次のようになります。
概要
ガイド付きフローのおかげで、コンテナー出荷を更新する現場作業者のタスクを効率化する電話アプリケーションが正常に構築されました。 業務を行う準備ができました。