[Salesforce]AggregateResultリストから項目値取得

AggregateResultリストから項目値取得

        List<String> testQueueUserIdList = new List<String>();

        for(AggregateResult gmObj : [SELECT UserOrGroupId, COUNT( Id ) 
                                FROM GroupMember 
                                WHERE GroupId IN ( SELECT Id FROM Group WHERE Type = 'Queue' And DeveloperName = 'testQueue') 
                                GROUP BY UserOrGroupId]){
            testQueueUserIdList.add(String.valueOf(gmObj.get('UserOrGroupId')));
        }
        System.debug('testQueueUserIdList : ' + testQueueUserIdList);

[Salesforce]inherited sharing

inherited sharing

クラスで inherited sharing キーワードを使用して、そのコール元のクラスの共有モードでクラスを実行します。

この例では、inherited sharing のある Apex クラスとその Apex コードの Visualforce 呼び出しを宣言します。inherited sharing 宣言により、実行ユーザが共有アクセス権を持つ取引先責任者のみが表示されます。この宣言が省略されている場合、安全でないデフォルトの動作により、ユーザが参照権限を持たない取引先責任者も表示されます。

public inherited sharing class InheritedSharingClass {
    public List<Contact> getAllTheSecrets() {
        return [SELECT Name FROM Contact];
    }
}

[Firebase]ドキュメント作成

ドキュメント作成

            //コピー元ドキュメント取得
            cont searchDoc;
            await firebase.firestore()
            .collection('testcolloya')
            .doc('testdocoya')
            .collection("testcoll")
            .where('testfield', '==', 'xxxxxxxxxxxxxxxxxxxx')
            .get()
            .then(snapshot => {
                snapshot.docs.forEach(doc => {
                    searchDoc = doc.data();
                });
            });

            //取得したドキュメントをコピーしてドキュメント作成
            let insertDoc = Object.assign({}, searchDoc);

            //ドキュメントのfield変更
            insertDoc.testfield = 'testfield';
            insertDoc.testfield2 = 'testfield2';

            //ドキュメント作成
            await firebase.firestore()
            .collection('testcolloya')
            .doc('testdocoya')
            .collection("testcoll")
            .add(insertDoc);