• Philip Meldrum08237737677563425
  • NEWBIE
  • 0 Points
  • Member since 2014

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 9
    Questions
  • 11
    Replies
We are building an integration with GOV.UK connecting to the HMRC Tax API using Visualforce Pages, Lightning components and APEX Outbound API calls. This will enable us to comply with the UK Government's 'Making Tax Digital' (MTD).

The gov.uk site requires a raft of fraud prevention which are supplied in Headers and we are struggling to give them the details they are after.

Specifically: Gov-Vendor-Public-IP and Gov-Client-Public-Port
https://developer.service.hmrc.gov.uk/guides/fraud-prevention/connection-method/other-via-server/

From our understanding it is not possible for us to access these details but I'm asking the community incase there is a way around it.

Here are some further technical details of these parameters:

Gov-Vendor-Public-IP
"The public IP address of the servers the originating device sent their requests to."
Which I would understand would be the Salesforce Instance IP Address

DOES ANYONE KNOW IF IT IS POSSIBLE TO DETERMINE THIS FROM A VISUALFORCE PAGE?

Gov-Client-Public-Port
"The public TCP port used by the originating device when initiating the request.
"This must not be a server port, for example 80 for http connections and 443 for https connections"

Our understanding is this would always be 443, and on clarification, HMRC replied:
"The requirement for the Gov-Client-Public-Port header is to submit the number of the ephemeral port that the client opens to receive the response from the server. This wouldn't normally be detectable at the client end itself as it's handled by the operating system rather than the application software. Instead it would be observed at the server end, either at the backend server process itself or at the web application firewall (WAF), load balancer or reverse proxy if configured. As your application is architected on top of Salesforce it may be the case that you are unable to obtain a value to submit"

Our understanding is the "ephemeral port" could change from call to call.

AGAIN DOES ANYONE KNOW IF IT IS POSSIBLE TO DETERMINE THIS FROM A VISUALFORCE PAGE?
 
In Classic you could launch the email tool with parameter to pre-populate the email (recipient, subject, attachment )
Does anyone know if you can do something similar in Lightning?
I've been trying to work out what integration solutions are available to integrate Salesforce with Outlook. Here is my minimum requirement:
1. Automatically sync both ways my Outlook Calendar and Salesforce Events
2. Manually sync emails from Outlook to Salesforce

I understand that Lighting Sync will automatically sync Outlook Calendar to Salesforce Events.

Looking at Lighting for Outlook (L4O) and Salesforce for Outlook (S4O) I think these are the combinations that can work (provided you use the right versions, but both Outlook 365 and on-premise Exchange Server can be used):
  • Outlook on Windows PC (YES: L4O, S4O)
  • Outlook on Mac (YES: L4O)
  • Apple Mail on Mac (NO)
  • Outlook Web App - Chrome (YES: L4O)
  • Outlook Web App - Safari (YES: L4O)
  • Outlook iPhone App (NO - but in pipeline)
  • Apple Mail iPhone App (NO)

I understand that these solutions are avaialble as part of the standard Salesforce License.

I'd appreciate an expert confirming my conclusions, and also perhaps someone could hightlight any advantages paid for apps (eg: SalesforceIQ InBox) can offer.

Thanks
Our App has been rejected in the Security Review because of 'Information Disclosure'
"Revealing system data or debugging information helps an adversary learn about the system and form a plan of attack. An information leak occurs when system data or debugging information leaves the program through an output stream or logging function"

The tester managed to break one of our triggers, and an error was displayed:
Error: Invalid Data. 
Review all error messages below to correct your data.
Apex trigger aiAP1.aiAPtrig_OrderItem caused an unexpected exception, contact your administrator: aiAP1.aiAPtrig_OrderItem: execution of BeforeInsert caused by: System.NullPointerException: Attempt to de-reference a null object: (aiAP)

What I'm doing is adding a try..catch... in all trigger and using addError to say:
SALESFORCE do not allow error messages from Appexchange apps - so all I can tell you is you did something wrong. Please ask your System Admin to contact Alpha Publisher

Any comments?
Is this common practice? Or do you try to write to an error log so you at least have some chance of fixing the issue?
We have the MailChimp app installed, and it uses scheduled apex to sync Salesforce with MailChimp hourly.
I thought that you could NOT do Push Upgrades if any of your apex classes were scheduled.
BUT my MailChimp Package has been upgraded (presumably by Push Upgrade)
Anyone know if/how this can be done?

We want to use Scheduled Apex, but we MUST be able to do Push Upgrades
Thanks
I've setup a page that generates a run-time error, displaying this error message:

Divide by 0
Error is in expression '{!mTestError}' in component <apex:commandButton> in page testpdf2: Class.testPdf.mTestError: line 122, column 1
An unexpected error has occurred. Your development organization has been notified. 

It says 'Your development organization has been notified' but I'm not getting the email.
Which user gets the email?

In the past, I've noticed that if you repeatedly trigger the error, you occasionaly get an email.
Can anyone help as we are trying to firm up our error handling policy.


We are using the Metadata API to inspect List View objects, and have managed to find the Filter Fields, but they are using a different naming convention.

For example the API name for Fax in Accounts is 'Fax', but in the Metadata name in the filter fields is ACCOUNT.PHONE2

The same mixing up of names seems to happen with ALL standard object, though custom objects & fields simply use the API Name.

Does anyone have any idea how we can map the Metadata name ( ACCOUNT.PHONE2) to the API Name (Account.Fax)?
 
We want to make an API Callout from one Salesforce org to an APEX web service on another Salesforce Org.
As an extra security layer on the server org, I would like to check that the client making the API call really is Salesforce.
(To prevent any non-salesforce server having access to the API)

The calling post must send the Salesforce Public Key, but is there anyway of inspecting it in APEX?

Does anyone know how/if this can be done?
 

If I had a publishing client that has 20 different magazines, they might well want 3-5 key reports/dashboards for each magazine.
I don't think senior execs are going to use the [Customise] button to customise their own filters, but I don't want to create 60 - 100 reports!
I know I can build links using pv0 etc, but I wondered what you guys think is best practice for this kind of issue?

Idealy I'd like to control both the filters and the grouping so I could use one report for multiple purposes.
Hi All,

We are getting a strange error while using Ligthinig for Outlook and dataloader for non admin users.
On the same machine and Admin user is able to login using same setup for LFO and Data loader. FYI : APIs are enabled for all profiles.
Attached is screenshot for the same.



Login Error
In Classic you could launch the email tool with parameter to pre-populate the email (recipient, subject, attachment )
Does anyone know if you can do something similar in Lightning?
Hello,
 
has anyone tried to implement Lightning sync for google (beta) as presented in winter release?
I did using the instructions posted in SF help: 
https://help.salesforce.com/articleView?id=lightning_sync_admin_google_prep_google.htm&type=0&language=en_US
but when I reach this step:
Authorize read-only calendar scope for the service account by entering the service account Client ID (also known as Client name) you generated in Google API Console. Enter the scope:https://www.googleapis.com/auth/calendar.readonly
I get an error message saying "the client name has not been registered with google yet"
Can anybody help? Is there maybe a video or tutorial available showing how to do this sync step by step? Thanks, claire 
I've setup a page that generates a run-time error, displaying this error message:

Divide by 0
Error is in expression '{!mTestError}' in component <apex:commandButton> in page testpdf2: Class.testPdf.mTestError: line 122, column 1
An unexpected error has occurred. Your development organization has been notified. 

It says 'Your development organization has been notified' but I'm not getting the email.
Which user gets the email?

In the past, I've noticed that if you repeatedly trigger the error, you occasionaly get an email.
Can anyone help as we are trying to firm up our error handling policy.


We are using the Metadata API to inspect List View objects, and have managed to find the Filter Fields, but they are using a different naming convention.

For example the API name for Fax in Accounts is 'Fax', but in the Metadata name in the filter fields is ACCOUNT.PHONE2

The same mixing up of names seems to happen with ALL standard object, though custom objects & fields simply use the API Name.

Does anyone have any idea how we can map the Metadata name ( ACCOUNT.PHONE2) to the API Name (Account.Fax)?
Is there a SOQL query out there to return all users and their profile who have access to a given object? I am trying to print out security profiles and would rather not do this by hand.  p.s. Many are just in Profiles...not in separate Permission Sets. 

Hey everyone,

I have a problem that probably has a lot of differnet answers so if you think you have a better approach feel free to let me know.

 

I am working on a visualforce page that has an HTML5 canvas element. The canvas loads an image from a publically available document. I need to get the base64 value of this image after the user has modified it. The problem is, because this is hosted on a force.com site, the domain is different than the the one that hosts the image. You cannot use canvas.toDataURL('image/jpeg') on a canvas that has content loaded via drawImage().

 

So the fix I see, like when you have to make a cross domain ajax request is to create a server side proxy. In this case, my proxy needs to act as an image server. I need the visualforce page to get the image requested (as a url argument) and display it, as if it was just an image, not a web page. Alternativly if i could get the base64 encoded value of the image and print that on the page, that would be fine as well.

 

Well feel free to leave any feedback as I am bit stuck for now. Thank you!

A colleague and I are designing an app for the App Exchange. The one fundamental question we have and for which we have not been able to find an answer is... how do we monetize, and how much do we have to pay Salesforce to join App Exchange?

 

We really have no idea of what it is going to cost us.

 

We would appreciate having a chance to learn from people who have monetized an app through the App Exchange.

 

 

It looks like the MRU hover functions are pretty simple to use, but I cannot seem to get them working in my S-Controls.
 
The Library.js and Ajaxdesktop.js (if i remember right) files have all the functions.  I created my S-Control, created all the onblur,mouseover,mouseout functions using the same syntax used in the MRU List in the Case section.
 
I then added the script:
 
<script type="text/javascript">MRUHoverDetail.loaderURL = "/ui/common/MRUHoverLoader?hoverIds=" + myId + "&retURL=%2F" + thisId + ""; window.sfdcPage.appendToOnBeforeUnloadQueue(function(){MRUHoverDetail.loaderURL = null }, 'Prevent MRU bulk loader request from firing');</script>
 
where myId is the ID of the object I want displayed in the hover, and thisId is the case we are currently viewing.
I should be able to just specify MRUHoverDetail.getHover('Id') but I am thinking there might be a hidden iFrame or a Div that I am not seeing that is associated with these hovers.  Has anyone been able to get them working on custom objects?  Are there any Devs that know what is required to have a link present the mini page layout hover on mouseover?  Thanks for reading.