フォーラムへの返信
-
投稿者投稿
-
HNagatomi参加者
お世話になっております。
明日以降、少し時間が空くやもしれませんが、お教えいただいた方法でやってみます。
何度もご検討・ご教授いただきまして、まことにありがとうございました。
失礼致します。
HNagatomi参加者お世話になっております。
以下の内容となりました。
“kpsdebug_host”:”nissan-neji–kpsr.ap0.visual.force.com”今回は子ウィンドウの表示が本番のログイン画面になったので、
そのままユーザーIDをワンクリックすると、データ確認結果画面が表示されるという
動きになりました。今回のプログラムは本番環境だけのプログラムなのでしょうか?
sandboxにも導入しましたが、sandboxでは、子ウィンドウに本番のログイン画面が表示されて
しまいます。>正常にいく場合もあるのですか?
はい、最初の問合せにも書きましたが、書込みが多くなってしまい申し訳ありません。
10回くらいリトライすると、うまく印刷画面が表示される場合があります。
ただし、規則性がありません。以上です、よろしくお願い致します。
HNagatomi参加者たいへんお世話になっております。
ご指示通り、インストール後に再度試しましたが、残念ながら同じ結果となります。
以下にその際のURLを記載させていただきます。[本番環境]帳票オブジェクトを開いた時点のURL:
https://nissan-neji–kpsr.ap0.visual.force.com/apex/ReportDev?id=a1710000002VTCa&sfdc.override=1[本番環境]帳票オブジェクトの印刷テスト時
・印刷画面になる正常ケースのURL:
https://kps-reportsconnect5.herokuapp.com/dl2?state=x005752034675807982
・ログイン画面になるケースのURL:
https://test.salesforce.com/[本番環境]帳票出力プログラムの実行時
・印刷画面になる正常ケースのURL:
https://kps-reportsconnect5.herokuapp.com/dl?code=aPrxr1wu_XMKux1YKuln.afR.08MxdZY9Nivz9diBJQHBOQgfPqijgMEvJqNSMshG37G8nWGGw%3D%3D&state=x6254333645250197
・ログイン画面になるケースのURL:
https://test.salesforce.com/#何れもログイン画面になるケースでは、ログイン画面に、sandboxのユーザーIDが表示されます。
#ブラウザ(Chrome、IEの2種)のキャッシュには本番ユーザーIDのみを保存するようにしてもです。
#この点が、最初にご指摘いただいたキャッシュの問題なのかとも思われます。[sandbox]帳票オブジェクトを開いた時点のURL:
https://nissan-neji–sb1–kpsr.cs6.visual.force.com/apex/ReportDev?id=a17N00000023nM1&sfdc.override=1[sandbox]帳票オブジェクトの印刷テスト時
・印刷画面になる正常ケースのURL:
https://kps-reportsconnect5.herokuapp.com/dl2?state=x4460084676121463
・ログイン画面になるケースのURL:
https://test.salesforce.com/[sandbox]帳票出力プログラムの実行時
・印刷画面になる正常ケースのURL:
https://kps-reportsconnect5.herokuapp.com/dl?code=aPrxr1wu_XMKux1YKuln.afR._85O.ClflNzafurBUlcieYdmsHOgk0prcuqKK.Ah_oLtr9NmQ%3D%3D&state=x8909639167430297
・ログイン画面になるケースのURL:
https://test.salesforce.com/#たいへんお手数をおかけしております。何度もご対応いただき感謝致します。
#ブラウザ(Chrome、IEの2種類)のキャッシュ操作も細かくやっているのですが…。
#これまで御社にて同様のお問い合わせがないということでしたら、弊社のSalesforceの環境の問題でしょうか。HNagatomi参加者お世話になっております。早々のご回答をいただきありがとうございます。
長くなりますが、以下に回答させていただきます。
(今回は社名も変えずに実際のURLを記載させていただきます)■ 各環境での URL.getSalesforceBaseUrl().getHost()の返値
[本番]
status:成功
https://nissan-neji.my.salesforce.com/_ui/common/apex/debug/ApexCSIPage[sandbox]
status:成功
https://nissan-neji–sb1.cs6.my.salesforce.com/_ui/common/apex/debug/ApexCSIPage※「-」はありませんが、「–」となっているのは問題ないでしょうか?
■ 下記コードの意味
> string baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
> String sURL = baseUrl + ‘/apex/クラス名?引数1=’ + 引数値用変数;現在のサーバーのURLを取得しています。
本番、sandboxの環境に対応できるようにと考えました。
Salesforceのヘルプページ:https://help.salesforce.com/apex/HTViewSolution?id=000004264&language=ja■ 印刷ボタンを押した際の画面のURL
[本番]
親ウィンドウ:https://nissan-neji–kpsr.ap0.visual.force.com/apex/ReportDev?id=a1710000002VTCa&sfdc.override=1
子ウィンドウ:https://test.salesforce.com/?ec=302&startURL=%2Fsetup%2Fsecur%2FRemoteAccessAuthorizationPage.apexp%3Fsource%3Dl86Hcy6qEKtWNqzXVErZDlmcRQs0D_HBE55MLVuP3x8t5wXkyHYyrVx2Xb5JoWzyVOJrnTqMMaWy_Sfomv.j1xklSQ67NPiEbdAN956aA9PcslibB_D_AOUlRMOMmk4HTSLeu.8P.WN4Yk2daKOrTMfM3GTr_j655mgavPdcfx868qjP9hjYOiQ2C9xtg_JvnoGKrz.cn22jFkGAc8nRL4TlgU0xgyzD4ZH5Pa5ByWqN6EUfv0brAJGvKcV9XPagoYr0bc6wWXHFc8DA5h2VvY.6HAbXodz_T4_bhrUUXvFACWia8CCGwQlskr.31tGmA9q8dmJJa41SnWjZmWzQEk8_d0siSoVvGbvO5JfqYm_JDpdwqPz_LDXehgAkgVUWHQZ_TOY.wfVRQf7umSdgWbTUorIEYZ.KhIQYw6LBiAypoZW8hNDkA
子ウィンドウにはSalesforceログイン画面が表示される。[sandbox]
親ウィンドウ:https://nissan-neji–sb1–kpsr.cs6.visual.force.com/apex/ReportDev?id=a17N00000023nM1&sfdc.override=1
子ウィンドウ:https://test.salesforce.com/?ec=302&startURL=%2Fsetup%2Fsecur%2FRemoteAccessAuthorizationPage.apexp%3Fsource%3Dl86Hcy6qEKtWNqzXVErZDlmcRQs0D_HBE55MLVuP3x8t5wXkyHYyrVx2Xb5JoWzyVOJrnTqMMaWy_Sfomv.j1xklSQ67NPiEbdAN956aA9PcslibB_D_AOUlRMOMmk4HTSLeu.8P.WN4Yk2daKOrTMfM3GTr_j655mgavPdcfx868qjP9hjYOiQ2C9xtg_JvnoGKrz.cn22jFkGAc8nRL4TlgU0xgyzD4ZH5Pa5ByWqN6EUfv0brAJGvKcV9XPagoYr0bc6wWXHFc8DA5h2VvY.6HAbXodz_T4_bhrUUXvFACWia8CCGwQlskr.31tGmA9q8dmJJa41SnWjZmWzQEk8_d0siSoVvGbvO5JfqYm_JDpdwqPz_LDXehgBmsHNqhsyokj48rumuRuIqGRBMLDpfTqQ.hK1DDCgZRuKYdhnxu1Gu4MGHc
子ウィンドウにはSalesforceログイン画面が表示される。以上、長くなりましたが、ご確認の程、よろしくお願い致します。
HNagatomi参加者お世話になっております。
回答が遅くなりまして申し訳ありません。以下にうまくいかないケースのsalesforceのURL(本番とsand box)をお送りいたします。
本番環境:
https://nippon-neji.my.salesforce.com/home/home.jspsandbox:
https://nippon-neji–sb1.cs6.my.salesforce.com/home/home.jsp(因みにそのままURLを記載したくないので会社名の最初の部分を変えております)
以上、よろしくお願い致します。
HNagatomi参加者お世話になっております。お伝えしていなかったことが1つございました。
帳票オブジェクトの「印刷テスト」ボタンを押しても、お伝えしたのと同様の動きになります。
URLについても同様です。以上です。よろしくお願い致します。
HNagatomi参加者ご回答いただきありがとうございます。
うまくいかないケースのURLを以下に記載させていただきます。【うまくいかないケースのsalesforceのURL 本番環境】
https://test.salesforce.com/services/oauth2/authorize?response_type=code&client_id=3MVG9yZ.WNe6byQAQYDKqo6PLjZ7HUsAvRIdCf6w3FwDpZ2iHioiFc9ID8SA6dWa4ZtC1B_zl.ivZQjrshGhK&redirect_uri=https://kps-reportsconnect5.herokuapp.com/dl&state=x4155438846765084【うまくいかないケースのsalesforceのURL sandbox環境】
https://test.salesforce.com/services/oauth2/authorize?response_type=code&client_id=3MVG9yZ.WNe6byQAQYDKqo6PLjZ7HUsAvRIdCf6w3FwDpZ2iHioiFc9ID8SA6dWa4ZtC1B_zl.ivZQjrshGhK&redirect_uri=https://kps-reportsconnect5.herokuapp.com/dl&state=x7912573960593781両方ともに、うまくいかない場合子ウィンドウのURLフィールドには、
「https://test.salesforce.com/~」が表示され、Salesforceのログイン画面が
表示されます。>ちなみに、Salesforce 1 になってからうまくいかないということですが、
Salesforce 1になる、というのは何か設定を変えたということですか?何も設定は変更しておりません。
また時期的にSalesforce 1 になってから発生しているのでお伺いした次第でございます。お手数をお掛けしておりますが、ご回答の程よろしくお願い致します。
HNagatomi参加者ご回答ありがとうございます。
>子ウィンドウに渡されるURLですが、これは正しいURLです
本番環境(非Sandbox)でも「https://test.salesforce.com/~」から始まるURLで
問題ないということでしょうか?因みに、Salesforce 1 になる前のSandbox環境では問題なく動作しており、
その時のURLは、以下のように始まります。
「https://cs6.salesforce.com/setup/secur/RemoteAccessAuthorizationPage.apexp?~」
>このURLをブラウザーで呼び出してsandboxのユーザーでログインしてReportsconnectの画面になりませんか?ご指摘の通りURLをブラウザーで呼び出すと、RConnectの画面になりますが、
エラーとなります。
(サーバーエラー:印刷処理が行えませんでした。再度処理を行なってください。x060314571814079954)Salesforce 1 になる前のSandbox では、問題なく子ウィンドウにRConnectの画面が
表示されるのですが、Salesforce 1 になったことによる影響とかはございませんか?
特に設定の追加、変更など必要はないでしょうか?度々で申し訳ありませんが、ご回答の程、よろしくお願い致しいます。
HNagatomi参加者連投で失礼致します。
子ウィンドウに渡されるURLを以下の内容でした。
参考になれば幸いです。
よろしくお願い致します。HNagatomi参加者早々のご回答ありがとうございます。
>試しにそのままログインしてみたらどうなるでしょうか?
ログイン画面が表示される場合は、ログインすると
Salesforceのユーザーのホームのページが表示されます。印刷画面には遷移しません。Sandbox環境だと分かりにくいので、本番環境で動作を確認しました。
確認前に本番環境のRConnectのヴァージョンが1.10だったので、1.19 にアップグレードしました。
リモートサイトも “https://kps-reportsconnect5.herokuapp.com” に変更済みです。結果、本番環境でも同様に小ウィンドウが、https://test.salesforce.com/のログイン画面
になってしまいます。
ブラウザもChrome,FireFox,IEで試しましたが、結果は変わりませんでした。
(全キャッシュ、Coookie削除)子ウィンドウに渡すURLを作成する際のクラスのコードの書き方ですが、
以下のようにベースのURLを取得しています。これは正しいでしょうか?string baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
String sURL = baseUrl + ‘/apex/クラス名?引数1=’ + 引数値用変数;度々お手数をお掛け致しますが、ご回答の程、よろしくお願い致します。
HNagatomi参加者早々のご回答をいただきまして、まことにありがとうございました。
ご回答にございました goReport() は、goPrint() と判断して、
ご指摘通り、Test.isRunningTest()で false が返った時のみ
goPrint()を実行するように修正したところ、無事カバレッジテスト
を通すことができました。こちらの勉強不足でお手数をお掛け致しました。
重ね重ね、ありがとうございました。 -
投稿者投稿