詳細

Salesforce DevOps環境構築

① 有効化、インストール (本番組織のみ)

➁ アプリにアクセス

 https://help.salesforce.com/s/articleView?id=sf.devops_center_setup.htm&type=5

 ・接続アプリケーション→権限追加する⇒アクセス可能になる。

① https://help.salesforce.com/s/articleView?id=sf.devops_center_create_connected_app.htm&type=5

  DevOps Center

  以下の画面でアクセスする。

➁ Salesforce → Github 認識する

  「指定ログイン情報」編集する

③ 新規オブジェクト

  sf_devops__Project__c

apex test class 中止

List<ApexTestQueueItem> items = [Select Id,ApexClassId,Status,ExtendedStatus,ParentJobId from ApexTestQueueItem where Status != 'Completed']; for(ApexTestQueueItem atqi : items) { atqi.Status = 'ABORTED'; } update items;

参考:
https://help.salesforce.com/s/articleView?id=000384395&type=1

静的圧縮ファイルのURL

/resource/bfml__DefaultProfileImg/no-image.png

/resource/解凍後のフォルダ名/ファイル名

lwc onerror 対応

    handleOnPicError(e) {

        e.target.src = “/resource/bfml__DefaultProfileImg/DefaultProfileImg.png”;

    }

html:

<img src={liner.icon} onerror={handleOnPicError} />

LWC 関連リストを取得

参考
https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.reference_wire_adapters_get_related_list_records

import { LightningElement, wire } from 'lwc';
import { getRelatedListRecords } from 'lightning/uiRelatedListApi';

export default class LdsGetRelatedListRecords extends LightningElement {
    @wire(getRelatedListRecords, {
        parentRecordId: '001RM000003UNu6YAG',
        relatedListId: 'Contacts',
        fields: ['Contact.Name','Contact.Id'],
        sortBy: ['Contact.Name']
    })
}

parentRecordId—(Required) The ID of the parent record that you want to get related lists for, like an Account ID.

relatedListId—(Required) The API name of a related list object, like Contacts, Opportunities, or Cases.

fields—(Optional) The API names of the related list’s column fields.

optionalFields—(Optional) The API names of additional fields in the related list.

pageSize—(Optional) The number of list records to return per page. → 取得件数制限

sortBy—(Optional) An array of field API names to sort the related list by. Accepts only one value per request. ソートする。 “-” + API Name : 降順

where—(Optional) The filter to apply to related list records, in GraphQL syntax.
   eq/gt/gte/like/lt/lte/ne
  例:{ and: [{ Name: { like: \”%001%\” }}] }

Salesforce 選択リストを取得する

//選択リスト型の選択できる値を取得
    public static List<Schema.PicklistEntry> getObjPicklist(String sObjName, String fieldName){
        List<Schema.PicklistEntry> pickList;
        Schema.SObjectType sObjType = (Schema.SObjectType) Schema.getGlobalDescribe().get(sObjName);
        if(sObjType != null){
            Map<String, Schema.SObjectField> fieldmap = sObjType.getDescribe().fields.getMap();
            Schema.SObjectField f = (Schema.SObjectField) fieldmap.get(fieldName);
            if(f != null){
                Schema.DescribeFieldResult r = f.getDescribe();
                pickList = r.getPicklistValues();
            }
        }
        return pickList;
    }

    //選択リスト型の選択できる値を取得
    public static Map<String,String> getObjPicklistActiveString(String sObjName, String fieldName){
        Map<String,String> rltMap = new Map<String,String>();
        List<Schema.PicklistEntry> pickList = FmlCommonUtils.getObjPicklist(sObjName,fieldName);
        for(Schema.PicklistEntry p : pickList) {
            if(p.isActive()) {
                rltMap.put(p.getLabel(),p.getValue());
            }
        }
        return rltMap;
    }

コミュニティへコンポーネント パラメータ指定

    <targets>
        <target>lightningCommunity__Page</target>
        <target>lightningCommunity__Default</target>
    </targets>
          <targetConfig targets="lightningCommunity__Default">
            <property name="formtitle" type="String" label="タイトル" description="コンポーネントのタイトル。" default="会員登録してください"/>
            <property name="item1label" type="String" label="項目1ラベル" description="項目1ラベル" default="会員No"/>
            <property name="item1NotShow" type="Boolean" label="非表示" description="非表示"/>
            <property name="item1Required" type="Boolean" label="必須" description="必須"/>
        </targetConfig>
    </targetConfigs>

ちなみに、表示/非表示について

    <lightning-input data-id="memberno" type="text" label={item1label} class={item1css} required={item1Required}></lightning-input>

    get item1css() {
        return this.item1NotShow ? "slds-hide" : "slds-show";
    }

選択リストから画面の選択項目に表示する

    例 LWC
  this.resFroms = await xxxxxxx();
    
    get options4ResFrom() {
    let tmp = [];
    for (let key in this.resFroms) {
        tmp.push({label:this.resFroms[key], value:key});
     }
     return tmp;
    }

    ■Apex: 
  @AuraEnabled
    public static Map<String,String> xxxxxxx() {
        String objName = FmlReservation__c.sObjectType.getDescribe().getName();
        String fieldName = FmlReservation__c.sObjectType.fields.ReservationFrom__c.getDescribe().getName();
        return CommonUtils.yyyyyyyyyy(objName,fieldName);
    }
    
    public static Map<String,String> yyyyyyyyyy(String sObjName, String fieldName){
        Map<String,String> rltMap = new Map<String,String>();
        List<Schema.PicklistEntry> pickList = CommonUtils.zzzzzzzz(sObjName,fieldName);
        for(Schema.PicklistEntry p : pickList) {
            if(p.isActive()) {
                rltMap.put(p.getLabel(),p.getValue());
            }
        }
        return rltMap;
    }
    
    //選択リスト型の選択できる値を取得
    public static List<Schema.PicklistEntry> zzzzzzzz(String sObjName, String fieldName){
    
        List<Schema.PicklistEntry> pickList;
        Schema.SObjectType sObjType = (Schema.SObjectType) Schema.getGlobalDescribe().get(sObjName);
        if(sObjType != null){
            Map<String, Schema.SObjectField> fieldmap = sObjType.getDescribe().fields.getMap();
            Schema.SObjectField f = (Schema.SObjectField) fieldmap.get(fieldName);
            if(f != null){
                Schema.DescribeFieldResult r = f.getDescribe();
                pickList = r.getPicklistValues();
                System.debug('値' + pickList);
            }
        }
        return pickList;
    }