كيفية الوصول إلى التقارير برمجياً في Salesforce باستخدام Apex

StackOverflow https://stackoverflow.com/questions/4277332

  •  28-09-2019
  •  | 
  •  

سؤال

أحاول كتابة تطبيق على منصة Salesforce التي يمكنها سحب قائمة جهات الاتصال من تقرير وإرسالها إلى خدمة ويب (على سبيل المثال لإرسال بريد إلكتروني أو رسالة نصية نصية))

الطريقة الوحيدة التي يمكن أن أجدها للقيام بذلك هي إضافة نتائج التقرير إلى حملة تم إنشاؤها حديثًا ، ثم الوصول إلى تلك الحملة. هذا يبدو وكأنه الطريق الطويل حولها.

يقول كل منشور أقرأه على الإنترنت إنه لا يمكنك الوصول إلى التقارير من خلال Apex ، ولكن تم كتابة معظم هذه المنشورات أو كلها قبل إصدار الإصدار 20 من API الشهر الماضي ، والذي قدم كائن تقرير جديد. يمكنني الآن الوصول إلى المعلومات برمجيًا حول تقرير (مثل تاريخ التشغيل الأخير وما إلى ذلك) ولكن لا يزال لا يمكنني العثور على طريقة للوصول إلى بيانات النتائج الواردة في هذا التقرير.

هل يعرف أحد ما إذا كانت هناك طريقة للقيام بذلك؟

هل كانت مفيدة؟

المحلول

بعد الكثير من الأبحاث في ذلك ، اكتشفت أن الطريقة الوحيدة للقيام بذلك في الوقت الحالي هي بالفعل كشط مستند CSV. أعتقد أن Conga وما إلى ذلك يستخدمون هذه الطريقة بالضبط.

لقد قمنا بذلك لفترة من الوقت الآن ، وهو يعمل. التحذيرات الوحيدة هي:

  • يجب مشاركة رمز المستخدم / كلمة المرور / كلمة المرور / الأمان إلى التطبيق الذي يتواصل مع التطبيق. إذا تغيرت كلمة المرور (وعلى افتراضي يتم تغييرها كل 30 يومًا أو نحو ذلك) ، فإن الرمز المميز يتغير أيضًا ويجب إعادة إدخاله.

  • عليك أن تعرف مضيف الحساب ، والذي قد يكون من الصعب الحصول عليه بشكل صحيح. على سبيل المثال ، في حين أن معظم الحسابات الأوروبية ستستخدم EMEA.Salesforce.com للوصول إلى CSV ، فإن حسابنا يستخدم NA7 (أمريكا الشمالية 7) على الرغم من أننا موجودون في أيرلندا. أرسل حاليًا مضيف الصفحة إلى التطبيق وأحللها لحساب المجال الفرعي الصحيحة للاستخدام ، لكنني أعتقد أنه يجب أن تكون هناك طريقة أفضل للقيام بذلك.

يحتاج Salesforce حقًا إلى حل هذا الأمر عن طريق توفير مكالمة API التي تتيح تصدير نتائج التقارير المخصصة أثناء الطيران والسماح لنا باستخدام OAuth الاتصال بها. لكن بالطبع ، من غير المرجح أن يحدث هذا.

نصائح أخرى

في تحديث Salesforcespring 11 ، يبدو أنه يمكنك الحصول على مزيد من المعلومات حول التقارير: كما هو مذكور في API لـ تقرير و نوع التقرير, ، يمكنك الوصول عبر Apex الحقول المستخدمة في الاستعلام بواسطة التقرير ، وقراءة الحقل "الأعمدة"، وكذلك الحقل المستخدم لتمثيل المرشحات التي تسمى"منقي".

يجب أن يسمح لك التكرار من خلال هذه الكائنات بإنشاء سلسلة تمثل نفس الاستعلام للتقرير. بعد إنشاء هذه السلسلة ، يمكنك إجراء استعلام ديناميكي باستخدام استدعاء قاعدة بيانات.

يبدو أنه فوضوي بعض الشيء ، ولكن يجب أن يعمل .. (لم يتم اختباره بعد!)

كما يقول الرأس ، هذا يعمل فقط مع التقارير المخصصة!

فقط لتوضيح زملائه الناشئين الذين سيجدون هذا ، عندما تم طرح السؤال ، يمكنك الوصول إلى بيانات التقرير الخاصة بك بشكل برمجي ، ولكن كان عليك استخدام بعض الأساليب المعرضة للخطأ.

كل هذا ثابت ، يمكنك الآن الوصول إلى تقاريرك عبر API اعتبارًا من فصل الشتاء.

الوثائق هنا - http://www.salesforce.com/us/developer/docs/api_analytics/index.htm

انتقل إلى المدينة على لوحات المعلومات المخصصة هذه وما إلى ذلك. https://salesforce.stackexchange.com/questions/337/can-report-data-be-accound-program.

لكن Conga (appextremes) تقوم بذلك في منتج Quickmerge الخاص بهم ، حيث يحدد المستخدم معرف التقرير ، ويقوم البرنامج النصي APEX على الصفحة بتشغيل التقرير لاستخراج نتائج عملية دمج البريد.

أضافت واجهة برمجة تطبيقات V20.0 بيانات تعريف حول التقارير ، ولكن لا توجد طريقة لتشغيل التقرير فعليًا والحصول على النتائج. إذا كان هذا تقريرًا قياسيًا ، أو تقريرًا قمت بتعريفه ، فيمكنك تحديد استعلام SOQL المكافئ لتقريرك وتشغيله ، ولكن إذا كان تقريرًا محددًا للمستخدم النهائي ، فلا توجد طريقة للقيام بذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top