• muromuro
  • NEWBIE
  • 0 Points
  • Member since 2017

  • Chatter
    Feed
  • 0
    Best Answers
  • 1
    Likes Received
  • 1
    Likes Given
  • 10
    Questions
  • 11
    Replies
お世話になっております。

商談の下にカスタムオブジェクトAとB(A・B間にリレーションなし)と、商談とはリレーションがないカスタムオブジェクトCとD(Cが親の主従関係、A・Bとはリレーションなし)があります。
これらのオブジェクトに対して、2つの動作があります。

1.Aにレコードを作成すると、商談を元にCを、Bを元にDを作成する(プロセスビルダーからApexクラス呼び出し)。
2.Aにレコードを作成すると、Bの値を更新する(Apexトリガ、After Insert)

当初、1.で作成されたCとDが2.の影響を受けていなかったので、これらは1.→2.の順で動作していました。
今回、処理2.のコードを改修することになり、ガバナ制限的にも問題のあるコードだったので、同様の動作を制限にかからないように書き直しました。
すると、処理内容はほぼ変わらないはずなのですが、1.で作成されたCとDが2.で更新した後の値となっており、2.→1.の順に動作するようになってしまいました。

Apexの動作順序を考えるとトリガ→プロセスビルダーなので2.→1.が正しい気もするのですが、だとすれば今まで1.→2.の順で動作していた理由がわかりません。業務的には1.→2.が理想です。

この逆転してしまった順番を、トリガを元に戻さずに1.→2.に戻すにはどうすればよいでしょうか。
また、当初1.→2.の順に動作する理由も開設いただければと思います。

以上、よろしくお願いいたします。
お世話になっております。

以下のトレイルのChallenge(テスト)を実施したところ、1問不正解という結果になりました。

アドミニストレーター認定資格の更新 (Spring '19)・Spring '19 の新機能の学習
https://trailhead.salesforce.com/ja/content/learn/modules/administrator-maintenance-spring19/learn-whats-new-in-spring19

その設問は6問目の「システム管理者がマクロ内で指定できるマクロ実行時からの相対日時はどれですか?」で、Dの「分後」を選択して不正解となりました。
この設問に対応するのは「マクロでの相対日付を使用した正確な日時の設定」だと思うのですが、ここでは以下のように説明されています。

日時を操作する場合、相対日付で次の内容を指定できます。
  • 分後
  • 時間後
  • 日後
  • 週間後

この内容であれば、相対日付として「分後」が使用できるので、Cの「時間後」とDの「分後」は正答だと思うのですが、どういうわけかDの「分後」だと不正解になってしまいます。

なぜ「分後」では不正解になってしまうのでしょうか。
どなたかわかる方がいらっしゃいましたら、お知恵をいただければと思います。
よろしくお願いいたします。
 

 

 

お世話になっております。
当社が請け負っている他社環境の保守案件でトラブルが発生しており、その原因と対処方法がわからず困っております。

コミュニティユーザがレコードをコピーする際に、入力画面が出る前に以下のエラーが発生しています。

「問題が発生しているようです。
Unable to find the record referenced by Opportunity.(カスタム参照項目)__c in null: (カスタム参照項目で紐づく取引先責任者のID)」

Sandbox環境で色々と調べた結果、取引先責任者の所有者を変更するとコピーできることがわかったのですが、そのトリガーとなっている設定がどこなのかがわかりません。
エラーメッセージで検索をかけても1件もヒットせずに困っています。
どなたかわかる方がいらっしゃいましたらご教示いただければと思います。
他に情報が必要でしたら都度可能な範囲で追記します。
お世話になっております。

私の会社のSalesforce環境で、社内の人員の稼働状況を表示するVisualforceを使用しています。
そのVFの処理速度が遅いため、どの部分で処理に時間がかかっているか、またその部分をどのようにすれば速度が改善されるかを検討してほしい、と上司から依頼されました。
そこで、開発者コンソールのExecution Overviewを使い(本番環境に入る権限がないので、圧倒的にデータ量の少ないSandbox上の話ではありますが)Visualforceで時間がかかっている(下図)ことを突き止め、「Visualforceのパフォーマンス向上」に則った改良を行うことを提案しました。
User-added image
しかし、「具体的にどこが処理を遅くしているかわからないのに闇雲に修正しても、見当違いだったら意味のない作業になる」として、具体的にVisualforceコードのどこで処理時間がかかっているかを調査するよう指示されました。

調べたところ、ApexにはLimit.getCpuTime()というメソッドがあるようで、コントローラはこれをSystem.debug()で出力させることで処理速度の遅い個所を特定できるのではないかと思いました。
同様のことをVisualforceで行いたいのですが、どのようにすれば処理速度が遅い個所を特定できますでしょうか。

以上、よろしくお願いします。
いつもお世話になっております。

トリガのハンドラークラス内で、処理1から処理2に渡す過程に以下のコードがあります。
List<Id> deletedIdList = new List<Id>();
if(deleteList.size() > 0){
	for(sObject deleteRecord: deleteList){
		deletedIdList.add((Id)deleteRecord.get('Id'));
	}
}
returnList.addAll(updateList);
for(sObject sObj: sObjList){
	for(sObject updated: updateList){
		if(updated.Id == sObj.Id){
			break;
		}
	}
	System.debug(deletedIdList);
	if(deletedIdList.size() == 0 || !deletedIdList.contains((Id)sObj.get('Id'))){
			returnList.add(sObj);
	}
}
処理1では、カスタムオブジェクトAのレコードの中に、特定の項目の値がTrigger.newのレコードと一致するレコードがある場合、一部の項目をその古いレコードに上書きし、Trigger.newのレコード自体は後で削除する、という処理を行っています。
この時、上書きされた古いレコードはupdateListに、Trigger.newのレコードはdeleteListに格納しています。

その後、上のコードの処理で以下のレコードをreturnListに格納させます。

・updateListの全レコード
・sObjList(中身はTrigger.new)のうち、deleteListに格納されていないレコードすべて

returnListに格納後、updateListとdeleteListはそれぞれ更新・削除を行い、returnListを処理2へと渡します。

この時、上のコードでは14行目にあるSystem.debugを削除してしまうと、deleteListの中身がreturnListにも格納されてしまい、処理2でENTITY IS DELETEDがスローされてしまいます。
しかし、このSystem.debugがあると、エラーは発生せず想定通りに処理が終了します。
  1. このような現象に遭遇した方はいらっしゃいますか。
  2. このような現象が発生する原因は何が考えられますか。
  3. System.debugなしで処理を正常に終了させるには、どうすればよいでしょうか。
以上3点、わかる方がいらっしゃいましたらよろしくお願いします。
お世話になっております。

Bootstrapでデザインを行っているのですが、ある条件下で一部の表示が異常になることがわかりました。
こちらをVisualforce上で解決する手段はありますでしょうか。

<現象>
apex:selectListの選択肢がずれ、選択肢が消えてしまったり余白ができてしまったりする(下記画像赤枠部分)
(本番環境に一度アップロードしているため、企業や業務が特定できそうな内容は消しております)
User-added image

<発生した条件>
  • ブラウザが「Google Chrome」
  • 対象のVisualforceページを「コンソール上で」表示する
  • ディスプレイを2つ使用し、「メインディスプレイと拡大率の異なるサブディスプレイ上で」表示する
    • メインディスプレイより小さいと選択肢が一部消え、大きいと余白が発生します

<VIsualforceコード>
(本番環境に一度アップロードしているため、選択肢近辺のみを抜粋し、企業や業務が特定できそうな内容は消しております)
<apex:page showHeader="false" sidebar="false" standardStyleSheets="false" controller="CalendarPageController" docType="html-5.0">
	<style>
		th, td{text-align: center; vertical-align: middle; font-size: small;}
        body{font-size: small;}
	</style>
	<script type='text/javascript' src='/soap/ajax/29.0/connection.js'></script>
	<script type='text/javascript' src='/soap/ajax/29.0/apex.js'></script>
	<apex:stylesheet value="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css"/>
	<div style="text-align: center;" id="centeringDiv" onLoad="FixedMidashi.create();">
		<apex:form id="form">
            <div>
                <apex:outputText styleClass="header" style="text-align:center;"><h5 style="color: '#6c757d';">  カレンダー      </h5></apex:outputText>
                <apex:commandLink action="{!replaceTargetToLastMonth}" value="<< {!lastYear}年{!lastMonth}月"/>
                <apex:outputText styleClass="header" style="display: inline; font-size: medium;" value=" {!targetYear}年{!targetMonth}月 "/> 
                <apex:commandLink action="{!replaceTargetToNextMonth}" value="{!nextYear}年{!nextMonth}月 >>"/>
                <apex:messages styleClass="alert alert-danger" style="text-align: left;"/>
            </div>
            <div class="form-group">
                <div class="d-inline-flex">
                    <apex:selectList value="{!selectedWeekString}" size="1" styleClass="form-control">
                        <apex:selectoptions value="{!monthOrWeekSelectList}"/>
                    </apex:selectList>
                </div>
                <div class="d-inline-flex">
                    <apex:selectList value="{!       IdString}" size="1" styleClass="form-control">
                        <apex:selectoptions value="{!       SelectList}"/>
                    </apex:selectList>
                </div>
                <div class="d-inline-flex">
                    <span class="input-group-append">
                        <apex:commandButton value="表示する  ・期間を選択" styleClass="btn btn-info" action="{!selectMonthOrWeek}"/>
                    </span>
                </div>
            </div>
		</apex:form>
	</div>
	<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
	<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
</apex:page>

以上、よろしくお願いいたします。
そのほか、必要な情報がありましたら可能な範囲で追記します。
お世話になっております。

Salesforce Lightning Design System(SLDS)を設定したVisualforceページを作成中です。
SLDSを<apex:inputField>に設定した際に生じる以下の問題について、対処法をご存知の方はいらっしゃいませんでしょうか。
  1. 参照項目への<apex:inputField>にSLDSを設定した際に、ルックアップのボタンが虫眼鏡のアイコンからずれてしまう(環境によって差があるようですが、テキストボックスと同サイズのボタンが横に出力される場合と、テキストボックスが縦方向に拡張されてその下半分がボタンとして機能する場合の2種類の挙動を確認しております)。
  2. 日付型への<apex:inputField>にSLDSを設定した際に、入力時にカレンダーが表示されない。
現在は、前者はDynamic Lookup Systemを、後者は<apex:input>を使用して回避していますが、できれば<apex:inputField>を使用したいと思っております。
以上、よろしくお願いいたします。
いつもお世話になっております。

業務でVisualforce PDFを用いた帳票を作成しています。
その中で、特定の帳票と特定のブラウザとの組み合わせで、ローカルへの保存が正しく行えない不具合が発生しています。

思いつくブラウザで試したところ、以下のように別れました。

正常にダウンロードできる
Mozilla Firefox 57.0.4
Microsoft Edge 41.16299.15.0
Lunascape 6.15.1(Gecko 45.9.0使用時)

正常にダウンロードできない
Google Chrome 63.0.3239.132
Sleipnir 6.2.9.4000
Opera 50.0.2762.45

ブラウザ内で規定のPDFエディタを開くため判別不可
Microsoft Internet Explorer 11.125.16299.0
Lunascape 6.15.1(Tridentエンジン使用時)

Firefoxなどでは何も指示しなくてもPDFファイルとしてダウンロードされるのですが、Chromeなどでは拡張子なしでダウンロードしようとしてしまいます。その上一度は必ずネットワークエラーで失敗するので再開する必要があり、不必要な手間をユーザーに与えることになってしまいます。
手動でPDFファイルに設定すれば中身は見られますが、ほかの帳票はPDFファイルとしてダウンロードしようとするので、これも同様に最初からPDFファイルとしてダウンロードさせたいと思っています。

このような挙動になる原因は何なのでしょうか。また、どのような対策を取ればよいのでしょうか。
どなたかよろしくお願いいたします。
ご覧いただきありがとうございます。

<やりたいこと>
SOQLでレコード毎にレコードタイプを取得したい

<経緯>
レコードタイプを3つ設定しているカスタムオブジェクトがあります。
User-added image
レコードタイプを分けているので、当然ですがタイプによって入力する項目が異なります。
そして、このオブジェクトの内容を表示しているVIsualforceページがあります。
User-added image

今までは、非共通の各項目は値がNULLか否かで表示の可否を判定していました。
今回、それをレコードタイプで分けることが可能という話を聞き、それを実装したいと思っています。
確認したところ、レコードタイプという標準項目(API参照名:RecordType)があるようなので、それをSOQLで抽出できるのではと考え、以下のSOQL文を書きました。
SELECT Id, Name, RecordType, (中略) FROM (カスタムオブジェクト)__c
ところが、以下のエラーが出て保存できません。
「No such column 'RecordType' on entity '(カスタムオブジェクト)__c'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.」

少し調べたところ、以下のページのようなことがあるとわかりました。
https://help.salesforce.com/articleView?id=000004257&language=ja&type=1
http://qiita.com/syossan27/items/d8465e493e6425dc99e4
今回も同じようなことが起きているのではと思うのですが、どのオブジェクトの項目を参照すればいいのか、皆目見当がつきません。
User-added image
(当該オブジェクトは選択中の「ソフトウェア・備品管理」、そのほか「備品セット」はカスタムオブジェクト)

以上、長くなってしまいましたが、どなたかよろしくお願いします。
初投稿です。ご覧いただきありがとうございます。
社内で勉強中なのですが、先輩方でも打開できなかったので、お知恵をお貸しいただけると幸いです。

VisualforceとApexを使用し、社内のソフトウェア・備品とそれに関連付けられたPCを表示するシステムを作っています。
Visualforce(viewSoftwareFixture.vfp)からApex(getPC.apxc)に備品名(SoftwareFixturAdmin__c.Name)を、ページ遷移なしで動的に渡す方法を知りたいです。
今回の学習範囲的に、Javascriptなどもできれば使わずに済むのであればうれしいです。
どなたかよろしくお願いします。

関連するカスタムオブジェクトとリレーション(備品セットは中間オブジェクト)
関連するカスタムオブジェクト

出力イメージ(特定の備品を静的に指定しているため、同じ備品の情報が出力されています)
出力イメージ

コード
・Visualforceページ viewSoftwareFixture.vfp
<apex:page standardController="SoftwareFixtureAdmin__c" extensions="getFixture,getPC">
    <apex:pageBlock >
    <apex:repeat value="{!fixtures}" var="fix" id="repeatFix">
        <apex:pageBlockSection title="{!fix.Name}" columns="1">
            <apex:pageBlockSection columns="3">
            <apex:outputField value="{!fix.ProductID__c}" rendered="{!fix.ProductID__c!=NULL}"/>
            <apex:outputField value="{!fix.ProductKey__c}" rendered="{!fix.ProductKey__c!=NULL}"/>
            <apex:outputField value="{!fix.UserID__c}" rendered="{!fix.UserID__c!=NULL}"/>
            <apex:outputField value="{!fix.LicenseLimit__c}" rendered="{!fix.LicenseLimit__c!=NULL}"/>
            <apex:outputField value="{!fix.Having__c}"/>
            <apex:outputField value="{!fix.Using__c}"/>
            <apex:outputField value="{!fix.CanUse__c}"/>
	        </apex:pageBlockSection>
		    <apex:repeat value="{!PCs}" var="pc" id="repeatPC">
		        <apex:pageBlockSection title="{!pc.Name}" columns="3">
		            <apex:outputField value="{!pc.User__c}"/>
		            <apex:outputField value="{!pc.Place__c}"/>
		            <apex:outputField value="{!pc.RentalDay__c}"/>
		        </apex:pageBlockSection>
		        </apex:repeat>
            </apex:pageBlockSection>
        </apex:repeat>
    </apex:pageBlock>
</apex:page>
・Apexクラス getFixture.apxc
public class getFixture {
    public List<SoftwareFixtureAdmin__c> fixtures{
        get;
        set;
    }
    
    public getFixture(ApexPages.StandardController controller){
        this.fixtures = [SELECT Name, ProductID__c, ProductKey__c, UserID__c, LicenseLimit__c, Having__c, Using__c, CanUse__c FROM SoftwareFixtureAdmin__c];
    }
}
・Apexクラス getPC.apxc
public class getPC {
    public List<PCAdmin__c> PCs{
        get;
        set;
    }
    
    public getPC(ApexPages.StandardController controller){
 		SoftwareFixtureAdmin__c fixId = [SELECT s.Id FROM SoftwareFixtureAdmin__c AS s WHERE Name =: Name]; //出力イメージはWHERE句を"WHERE Name = 'Microsoft Office 2013'と指定して出力
        this.PCs = [SELECT p.Name, p.User__c, p.Place__c, p.RentalDay__c FROM PCAdmin__c AS p WHERE p.Id IN(SELECT f.PC__c FROM FixtureSet__c AS f WHERE f.SoftwareFixtureAdmin__c =: fixId.Id) ORDER BY p.Name];
    }

    public String Name {
        get;
        set;
    }
}
いつもお世話になっております。

トリガのハンドラークラス内で、処理1から処理2に渡す過程に以下のコードがあります。
List<Id> deletedIdList = new List<Id>();
if(deleteList.size() > 0){
	for(sObject deleteRecord: deleteList){
		deletedIdList.add((Id)deleteRecord.get('Id'));
	}
}
returnList.addAll(updateList);
for(sObject sObj: sObjList){
	for(sObject updated: updateList){
		if(updated.Id == sObj.Id){
			break;
		}
	}
	System.debug(deletedIdList);
	if(deletedIdList.size() == 0 || !deletedIdList.contains((Id)sObj.get('Id'))){
			returnList.add(sObj);
	}
}
処理1では、カスタムオブジェクトAのレコードの中に、特定の項目の値がTrigger.newのレコードと一致するレコードがある場合、一部の項目をその古いレコードに上書きし、Trigger.newのレコード自体は後で削除する、という処理を行っています。
この時、上書きされた古いレコードはupdateListに、Trigger.newのレコードはdeleteListに格納しています。

その後、上のコードの処理で以下のレコードをreturnListに格納させます。

・updateListの全レコード
・sObjList(中身はTrigger.new)のうち、deleteListに格納されていないレコードすべて

returnListに格納後、updateListとdeleteListはそれぞれ更新・削除を行い、returnListを処理2へと渡します。

この時、上のコードでは14行目にあるSystem.debugを削除してしまうと、deleteListの中身がreturnListにも格納されてしまい、処理2でENTITY IS DELETEDがスローされてしまいます。
しかし、このSystem.debugがあると、エラーは発生せず想定通りに処理が終了します。
  1. このような現象に遭遇した方はいらっしゃいますか。
  2. このような現象が発生する原因は何が考えられますか。
  3. System.debugなしで処理を正常に終了させるには、どうすればよいでしょうか。
以上3点、わかる方がいらっしゃいましたらよろしくお願いします。
お世話になっております。

商談の下にカスタムオブジェクトAとB(A・B間にリレーションなし)と、商談とはリレーションがないカスタムオブジェクトCとD(Cが親の主従関係、A・Bとはリレーションなし)があります。
これらのオブジェクトに対して、2つの動作があります。

1.Aにレコードを作成すると、商談を元にCを、Bを元にDを作成する(プロセスビルダーからApexクラス呼び出し)。
2.Aにレコードを作成すると、Bの値を更新する(Apexトリガ、After Insert)

当初、1.で作成されたCとDが2.の影響を受けていなかったので、これらは1.→2.の順で動作していました。
今回、処理2.のコードを改修することになり、ガバナ制限的にも問題のあるコードだったので、同様の動作を制限にかからないように書き直しました。
すると、処理内容はほぼ変わらないはずなのですが、1.で作成されたCとDが2.で更新した後の値となっており、2.→1.の順に動作するようになってしまいました。

Apexの動作順序を考えるとトリガ→プロセスビルダーなので2.→1.が正しい気もするのですが、だとすれば今まで1.→2.の順で動作していた理由がわかりません。業務的には1.→2.が理想です。

この逆転してしまった順番を、トリガを元に戻さずに1.→2.に戻すにはどうすればよいでしょうか。
また、当初1.→2.の順に動作する理由も開設いただければと思います。

以上、よろしくお願いいたします。
お世話になっております。

以下のトレイルのChallenge(テスト)を実施したところ、1問不正解という結果になりました。

アドミニストレーター認定資格の更新 (Spring '19)・Spring '19 の新機能の学習
https://trailhead.salesforce.com/ja/content/learn/modules/administrator-maintenance-spring19/learn-whats-new-in-spring19

その設問は6問目の「システム管理者がマクロ内で指定できるマクロ実行時からの相対日時はどれですか?」で、Dの「分後」を選択して不正解となりました。
この設問に対応するのは「マクロでの相対日付を使用した正確な日時の設定」だと思うのですが、ここでは以下のように説明されています。

日時を操作する場合、相対日付で次の内容を指定できます。
  • 分後
  • 時間後
  • 日後
  • 週間後

この内容であれば、相対日付として「分後」が使用できるので、Cの「時間後」とDの「分後」は正答だと思うのですが、どういうわけかDの「分後」だと不正解になってしまいます。

なぜ「分後」では不正解になってしまうのでしょうか。
どなたかわかる方がいらっしゃいましたら、お知恵をいただければと思います。
よろしくお願いいたします。
 

 

 

いつもお世話になっております。

トリガのハンドラークラス内で、処理1から処理2に渡す過程に以下のコードがあります。
List<Id> deletedIdList = new List<Id>();
if(deleteList.size() > 0){
	for(sObject deleteRecord: deleteList){
		deletedIdList.add((Id)deleteRecord.get('Id'));
	}
}
returnList.addAll(updateList);
for(sObject sObj: sObjList){
	for(sObject updated: updateList){
		if(updated.Id == sObj.Id){
			break;
		}
	}
	System.debug(deletedIdList);
	if(deletedIdList.size() == 0 || !deletedIdList.contains((Id)sObj.get('Id'))){
			returnList.add(sObj);
	}
}
処理1では、カスタムオブジェクトAのレコードの中に、特定の項目の値がTrigger.newのレコードと一致するレコードがある場合、一部の項目をその古いレコードに上書きし、Trigger.newのレコード自体は後で削除する、という処理を行っています。
この時、上書きされた古いレコードはupdateListに、Trigger.newのレコードはdeleteListに格納しています。

その後、上のコードの処理で以下のレコードをreturnListに格納させます。

・updateListの全レコード
・sObjList(中身はTrigger.new)のうち、deleteListに格納されていないレコードすべて

returnListに格納後、updateListとdeleteListはそれぞれ更新・削除を行い、returnListを処理2へと渡します。

この時、上のコードでは14行目にあるSystem.debugを削除してしまうと、deleteListの中身がreturnListにも格納されてしまい、処理2でENTITY IS DELETEDがスローされてしまいます。
しかし、このSystem.debugがあると、エラーは発生せず想定通りに処理が終了します。
  1. このような現象に遭遇した方はいらっしゃいますか。
  2. このような現象が発生する原因は何が考えられますか。
  3. System.debugなしで処理を正常に終了させるには、どうすればよいでしょうか。
以上3点、わかる方がいらっしゃいましたらよろしくお願いします。
お世話になっております。

Bootstrapでデザインを行っているのですが、ある条件下で一部の表示が異常になることがわかりました。
こちらをVisualforce上で解決する手段はありますでしょうか。

<現象>
apex:selectListの選択肢がずれ、選択肢が消えてしまったり余白ができてしまったりする(下記画像赤枠部分)
(本番環境に一度アップロードしているため、企業や業務が特定できそうな内容は消しております)
User-added image

<発生した条件>
  • ブラウザが「Google Chrome」
  • 対象のVisualforceページを「コンソール上で」表示する
  • ディスプレイを2つ使用し、「メインディスプレイと拡大率の異なるサブディスプレイ上で」表示する
    • メインディスプレイより小さいと選択肢が一部消え、大きいと余白が発生します

<VIsualforceコード>
(本番環境に一度アップロードしているため、選択肢近辺のみを抜粋し、企業や業務が特定できそうな内容は消しております)
<apex:page showHeader="false" sidebar="false" standardStyleSheets="false" controller="CalendarPageController" docType="html-5.0">
	<style>
		th, td{text-align: center; vertical-align: middle; font-size: small;}
        body{font-size: small;}
	</style>
	<script type='text/javascript' src='/soap/ajax/29.0/connection.js'></script>
	<script type='text/javascript' src='/soap/ajax/29.0/apex.js'></script>
	<apex:stylesheet value="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css"/>
	<div style="text-align: center;" id="centeringDiv" onLoad="FixedMidashi.create();">
		<apex:form id="form">
            <div>
                <apex:outputText styleClass="header" style="text-align:center;"><h5 style="color: '#6c757d';">  カレンダー      </h5></apex:outputText>
                <apex:commandLink action="{!replaceTargetToLastMonth}" value="<< {!lastYear}年{!lastMonth}月"/>
                <apex:outputText styleClass="header" style="display: inline; font-size: medium;" value=" {!targetYear}年{!targetMonth}月 "/> 
                <apex:commandLink action="{!replaceTargetToNextMonth}" value="{!nextYear}年{!nextMonth}月 >>"/>
                <apex:messages styleClass="alert alert-danger" style="text-align: left;"/>
            </div>
            <div class="form-group">
                <div class="d-inline-flex">
                    <apex:selectList value="{!selectedWeekString}" size="1" styleClass="form-control">
                        <apex:selectoptions value="{!monthOrWeekSelectList}"/>
                    </apex:selectList>
                </div>
                <div class="d-inline-flex">
                    <apex:selectList value="{!       IdString}" size="1" styleClass="form-control">
                        <apex:selectoptions value="{!       SelectList}"/>
                    </apex:selectList>
                </div>
                <div class="d-inline-flex">
                    <span class="input-group-append">
                        <apex:commandButton value="表示する  ・期間を選択" styleClass="btn btn-info" action="{!selectMonthOrWeek}"/>
                    </span>
                </div>
            </div>
		</apex:form>
	</div>
	<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
	<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
</apex:page>

以上、よろしくお願いいたします。
そのほか、必要な情報がありましたら可能な範囲で追記します。
いつもお世話になっております。

業務でVisualforce PDFを用いた帳票を作成しています。
その中で、特定の帳票と特定のブラウザとの組み合わせで、ローカルへの保存が正しく行えない不具合が発生しています。

思いつくブラウザで試したところ、以下のように別れました。

正常にダウンロードできる
Mozilla Firefox 57.0.4
Microsoft Edge 41.16299.15.0
Lunascape 6.15.1(Gecko 45.9.0使用時)

正常にダウンロードできない
Google Chrome 63.0.3239.132
Sleipnir 6.2.9.4000
Opera 50.0.2762.45

ブラウザ内で規定のPDFエディタを開くため判別不可
Microsoft Internet Explorer 11.125.16299.0
Lunascape 6.15.1(Tridentエンジン使用時)

Firefoxなどでは何も指示しなくてもPDFファイルとしてダウンロードされるのですが、Chromeなどでは拡張子なしでダウンロードしようとしてしまいます。その上一度は必ずネットワークエラーで失敗するので再開する必要があり、不必要な手間をユーザーに与えることになってしまいます。
手動でPDFファイルに設定すれば中身は見られますが、ほかの帳票はPDFファイルとしてダウンロードしようとするので、これも同様に最初からPDFファイルとしてダウンロードさせたいと思っています。

このような挙動になる原因は何なのでしょうか。また、どのような対策を取ればよいのでしょうか。
どなたかよろしくお願いいたします。
ご覧いただきありがとうございます。

<やりたいこと>
SOQLでレコード毎にレコードタイプを取得したい

<経緯>
レコードタイプを3つ設定しているカスタムオブジェクトがあります。
User-added image
レコードタイプを分けているので、当然ですがタイプによって入力する項目が異なります。
そして、このオブジェクトの内容を表示しているVIsualforceページがあります。
User-added image

今までは、非共通の各項目は値がNULLか否かで表示の可否を判定していました。
今回、それをレコードタイプで分けることが可能という話を聞き、それを実装したいと思っています。
確認したところ、レコードタイプという標準項目(API参照名:RecordType)があるようなので、それをSOQLで抽出できるのではと考え、以下のSOQL文を書きました。
SELECT Id, Name, RecordType, (中略) FROM (カスタムオブジェクト)__c
ところが、以下のエラーが出て保存できません。
「No such column 'RecordType' on entity '(カスタムオブジェクト)__c'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.」

少し調べたところ、以下のページのようなことがあるとわかりました。
https://help.salesforce.com/articleView?id=000004257&language=ja&type=1
http://qiita.com/syossan27/items/d8465e493e6425dc99e4
今回も同じようなことが起きているのではと思うのですが、どのオブジェクトの項目を参照すればいいのか、皆目見当がつきません。
User-added image
(当該オブジェクトは選択中の「ソフトウェア・備品管理」、そのほか「備品セット」はカスタムオブジェクト)

以上、長くなってしまいましたが、どなたかよろしくお願いします。
初投稿です。ご覧いただきありがとうございます。
社内で勉強中なのですが、先輩方でも打開できなかったので、お知恵をお貸しいただけると幸いです。

VisualforceとApexを使用し、社内のソフトウェア・備品とそれに関連付けられたPCを表示するシステムを作っています。
Visualforce(viewSoftwareFixture.vfp)からApex(getPC.apxc)に備品名(SoftwareFixturAdmin__c.Name)を、ページ遷移なしで動的に渡す方法を知りたいです。
今回の学習範囲的に、Javascriptなどもできれば使わずに済むのであればうれしいです。
どなたかよろしくお願いします。

関連するカスタムオブジェクトとリレーション(備品セットは中間オブジェクト)
関連するカスタムオブジェクト

出力イメージ(特定の備品を静的に指定しているため、同じ備品の情報が出力されています)
出力イメージ

コード
・Visualforceページ viewSoftwareFixture.vfp
<apex:page standardController="SoftwareFixtureAdmin__c" extensions="getFixture,getPC">
    <apex:pageBlock >
    <apex:repeat value="{!fixtures}" var="fix" id="repeatFix">
        <apex:pageBlockSection title="{!fix.Name}" columns="1">
            <apex:pageBlockSection columns="3">
            <apex:outputField value="{!fix.ProductID__c}" rendered="{!fix.ProductID__c!=NULL}"/>
            <apex:outputField value="{!fix.ProductKey__c}" rendered="{!fix.ProductKey__c!=NULL}"/>
            <apex:outputField value="{!fix.UserID__c}" rendered="{!fix.UserID__c!=NULL}"/>
            <apex:outputField value="{!fix.LicenseLimit__c}" rendered="{!fix.LicenseLimit__c!=NULL}"/>
            <apex:outputField value="{!fix.Having__c}"/>
            <apex:outputField value="{!fix.Using__c}"/>
            <apex:outputField value="{!fix.CanUse__c}"/>
	        </apex:pageBlockSection>
		    <apex:repeat value="{!PCs}" var="pc" id="repeatPC">
		        <apex:pageBlockSection title="{!pc.Name}" columns="3">
		            <apex:outputField value="{!pc.User__c}"/>
		            <apex:outputField value="{!pc.Place__c}"/>
		            <apex:outputField value="{!pc.RentalDay__c}"/>
		        </apex:pageBlockSection>
		        </apex:repeat>
            </apex:pageBlockSection>
        </apex:repeat>
    </apex:pageBlock>
</apex:page>
・Apexクラス getFixture.apxc
public class getFixture {
    public List<SoftwareFixtureAdmin__c> fixtures{
        get;
        set;
    }
    
    public getFixture(ApexPages.StandardController controller){
        this.fixtures = [SELECT Name, ProductID__c, ProductKey__c, UserID__c, LicenseLimit__c, Having__c, Using__c, CanUse__c FROM SoftwareFixtureAdmin__c];
    }
}
・Apexクラス getPC.apxc
public class getPC {
    public List<PCAdmin__c> PCs{
        get;
        set;
    }
    
    public getPC(ApexPages.StandardController controller){
 		SoftwareFixtureAdmin__c fixId = [SELECT s.Id FROM SoftwareFixtureAdmin__c AS s WHERE Name =: Name]; //出力イメージはWHERE句を"WHERE Name = 'Microsoft Office 2013'と指定して出力
        this.PCs = [SELECT p.Name, p.User__c, p.Place__c, p.RentalDay__c FROM PCAdmin__c AS p WHERE p.Id IN(SELECT f.PC__c FROM FixtureSet__c AS f WHERE f.SoftwareFixtureAdmin__c =: fixId.Id) ORDER BY p.Name];
    }

    public String Name {
        get;
        set;
    }
}
Hi All,

While setting up the CLIQ, its giving me the error below, I don't know which path to set to make it working

User-added image

thanks in advance
Abhi