YAML を使用する
アプリを展開した後、YAML のサブセットを使用して、抽出した式をテキスト ファイルに保存できます。 YAML は、人が使いやすいデータ シリアル化言語です。 その目的は、ソースの読み取りと書き込みのプロセスを簡略化し、バージョン間の違いを特定することです。 加えて、これらのファイルは、採用されている Microsoft Power fx YAML 数式規則に従っていれば、任意のテキスト エディターを使用して編集できます。
YAML として表されるラベル コントロールは次のとおりです。
LblAppName1 As label:
Fill: =RGBA(58, 58, 58, 0)
Height: =88
Size: =27
Text: ="Companies"
Width: =Parent.Width - Self.X - IconSortUpDown1.Width - IconNewItem1.Width - IconRefresh1.Width
Wrap: =false
X: =20
ZIndex: =2
YAML ではキーと値のペアを使用してデータが表され、ペアの入れ子がサポートされています。 たとえば、lblAppName1 などの項目に、Fill、Height、Size などのインデントされたキーと値のペアを含めることができます。 YAML はインデントを使用して構造とインデント用のスペースを決定しますが、タブは使用できません。
YAML には、Power fx 式の 3 つの独自の側面が埋め込まれています。
As キーワードは、コントロール タイプを定義します。 前の例のように、ラベル コントロールは lblAppName1 as Label: 式を使用して定義できます。 プロパティ値を指定する場合、通常、YAML ではコロン (:) の左側の名前は 1 つのみです。 ただし、YAML 仕様では、より複雑な左側の式が除外されることはなく、Power Fx YAML 構文では、プロパティに名前を付けてそのタイプを指定するときに、この省略による利点が得られます。
すべての式は、先頭が等号で始まります。 Microsoft Excel と同様に、等号 (=) によって静的値ではなく式が導入されます。 Power Apps Studio で先頭の等号 (=) を入力する必要はありませんが、常に数式バーに表示されます。 また、先頭の等号 (=) により、静的値に対して YAML で実行される通常のデータ型解釈 (式には適さない) を回避できます。
一部の式は、YAML 複数行構文で表す必要があります。 # が埋め込まれた文字列を含む式がある場合、YAML はコメントの開始として解釈するため、行の残りの部分は切り捨てられます。 これを回避するために、必ず YAML の複数行構文を使用してこの式を表してください。最も一般的なのは、| 構文を使用する方法です。
詳細については、Microsoft Power fx YAML 式の文法を参照してください。
フォルダー構造
キャンバス アプリを展開したら、一連のファイルとフォルダーの作成を探します。 展開プロセスを実行すると、次のキー ファイルおよびフォルダーがあります。
\src - コントロール ファイルとコンポーネント ファイル。 このファイルにはソースが含まれています。
*.fx.yaml - control.json ファイルから抽出された式。 ここで式を編集できます。
CanvasManifest.json - ヘッダー、プロパティ、および publishInfo に通常存在する情報が含まれているマニフェスト ファイル。
*.json - 未加工の control.json ファイル。
\EditorState*.editorstate.json - Power Apps Studio で使用するためのキャッシュされた情報。
\DataSources - アプリによって使用されるすべてのデータ ソース。
\Connections - このアプリに保存され、Power Apps Studio に再読み込みするときに使用される接続インスタンス。
\Assets - アプリに埋め込まれたメディア ファイル。
\pkgs - テンプレート、API 定義ファイル、コンポーネント ライブラリなど、外部参照のダウンロード済みのコピー。 これらのファイルは、nuget/npm 参照に似ています。
\other - .msapp ファイルの再作成に必要なその他のすべてのファイル。
entropy.json - 揮発性要素 (タイムスタンプなど) がこのファイルに展開されます。 このファイルを使用すると、ラウンドトリップは可能なままで、他のファイル内でノイズの多い差分を減らすことができます。 .msapp ファイルの他のファイル (\references 内のファイルなど) が保持されます。
ファイル形式
末尾が *.fx.yaml のファイルには、編集可能な式が含まれています。 展開されたファイルを確認すると、すべてのファイルに YAML が含まれるわけではないことがわかります。多くのファイルはネイティブ形式で、Power Apps Studio の外部で編集することは想定していません。
ソースの変更のマージ
展開によって有効になる 1 つのシナリオとして、複数のユーザーがアプリを編集し、ソース管理の変更をマージするための機能があります。 このシナリオでは、競合を最小限に抑える必要があります。 たとえば、同じコントロールで式を編集すると競合が発生する可能性は高いですが、2 人のユーザーが異なる画面を編集するシナリオでは、競合が生じる可能性は低くなります。
クラウドでアプリを作成し、ダウンロードして編集した場合は、再梱包したバージョンをアップロードすると、クラウド バージョンに対して行ったすべての変更が上書きされることに注意してください。
前の手順でアプリをダウンロードしたためにオンラインで行った作業が上書きされて失われるのを防ぐために、クラウドからアプリを再度ダウンロードして展開し、ファイルの変更をコミットして競合を解決してから、新しいアプリを再梱包してアップロードする必要があります。 ソース管理にアプリのメイン コピーが含まれていることを確認してください。
繰り返しになりますが、複数のユーザーが同時に編集すると、競合が発生する可能性があります。 たとえば、異なる画面で 2 人が同じコントロール名を選択した場合、マージの競合が発生します。 詳細については、Microsoft Power Platform CLI ドキュメントを参照してください。