function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
sbarstowsbarstow 

Display Web Integration Links in Partner Portal

Is there a way to re-use the WILs on a user layout inside the open source partner portal project?

I have related lists working, this is really the "final frontier".

Intuitively, it would not seem possible, but perhaps someone has done a workaround or something?

Thx.
mtbclimbermtbclimber
Web Integration Links are exposed in the API but not in DescribeLayout so this represents a challenge...

Enter formula fields.

Using the "HYPERLINK" function in a Formula field you can simulate WILs on your layout in the portal. You'll have to reconstruct the dynamic URL using the merge fields available in the formula field wizard which are not as extensive but slightly more flexible than WILs since these can be controlled with field level security in addition to layouts.

In API 6 you find the formula returning a value in the API that can be parsed in the jsp. We are planning to improve the way this is handled in API 7. Should you decide to upgrade your portal code to API 7 directly you'll have to modify the snippet provided below. Note: you will have to update the Partner Portal to use API 6.0 to take advantage of the formula fields. The version downloaded from the website today uses 5.0.

In sObjectDetail.jsp, you'll want to add the following case in the <c:if test="${comp.value == field.name}" ></c:if> block which starts at line 70 and ends at 122. I have it at the end just before <c:otherwise><c:out value="${map[field.name]}" /></c:otherwise> at line 117.

<c:when test="${field.type == 'string'}">
  <c:choose>
    <c:when test="${fn:indexOf(map[field.name],'_HL1_') >= 0}" >
      <c:set var="HL2" value="${fn:indexOf(map[field.name],'_HL2_')}" />
      <c:set var="url" value="${fn:substring(map[field.name],5,HL2)}" />
      <c:set var="text" value="${fn:substring(map[field.name],(HL2+5),fn:indexOf(map[field.name],'_HL3_'))}" />
      <html-el:link href="${url}" styleClass="dataField" target="_blank"><c:out value="${text}" /></html-el:link>
    </c:when>
    <c:otherwise>
      <c:out value="${map[field.name]}"/>
    </c:otherwise>
  </c:choose>
</c:when>

Message Edited by mtbclimber on 09-26-2005 02:01 PM

sbarstowsbarstow
Is the process for upgrading to 6.0 as simple as replacing the partner.wsdl.v5.0.xml file that is in the build?

If not, is the process outlined on this site somewhere?
sbarstowsbarstow
What I did was repoint the build to point to my new partner wsdl and re-ran the wsdl2java target in ant.

Not sure what else I need to do.
mtbclimbermtbclimber
Now you should just be able to follow the directions in the Readme.doc which indicate you should run either the 'makewar' or 'deployLocal' task depending on where you have Tomcat running.

Note: the wsdl2java task rebuilds the stubs and puts them in the src/java directory. You might want to delete the soap directory in 'src\java\com\sforce' before you run wsdl2java just to keep it clean.
sbarstowsbarstow
Ok.

Did all the recompiles and redeploys. Do I need to do something special to get formula fields to show up now? I have a number formula field that is not showing up for some reason.

Thx for your help btw.
mtbclimbermtbclimber
No problem.

If it's not showing up then it may mean your changes to use 6.0 did not deploy. First check your Login History in your org to be sure that you are, in fact, using the 6.0 API. Go to Setup > Admin Setup > Manage Users > Login History.

If that indicates you are using 6.0 next be sure that your user is seeing the field through the API. To do this I would use the sforce Explorer and inspect the object you are testing to be sure the field is accessible to the test user in the API. Make sure the explorer is hitting the 6.0 endpoint. You can set this under the Tools > Options dialog.

If you see the custom formula field there then make sure it is on the Layout that your user is seeing. The portal does respect record type page layout assignment so be sure you are looking at the right layout.

Also, any changes to the Layout or Describe (new fields, picklist values, field changes, etc) are only refreshed at login through the portal. So if you need to add this field to the layout you'll have to logout and log back in to see the change in the portal.
sbarstowsbarstow
Ok. Now seeing number formula fields but my hyperlink formula field is still screwy. Will see if i can figure it out.

Thanks again.
sbarstowsbarstow
Got it. Logged out, back in. Formula field is there. will use your parsing code now.

Thanks again.