Collaboration API - Questions

Can I use Collab API powerful enough to make a portlet just like "Community Projects Portlet"? (including the funcionality to add projects through project explorer)Similarly "Community Documents portlet".Is there a function to get all the documents of all the projects added in current "Community Projects" portlet for the logged user?Is there a way/function to get all the projects of the current community and its subcommunities? (to whihc the current user has rights to)

With the community and my page task portlets you can already do that, unless there is something I'm missing.
You can view all users across all projectsIt has columns for:
Task Name, Project, Assigned To, Start/Due Date, Status (% complete).
In addition it has the added features of letting you print, and also sort by:
All Tasks
Not yet started
Completed
Overdue
At Risk
Upcoming

Similar Messages

  • Using KM and Collaboration API in portal component and web dynpro

    Hi,
    I have to develop portal components and Web Dynpros (JAVA) which have to use the following functions:
    - copy, delete KM documents
    - sending E-Mails 
    Can anyone give me some actual documentation links for the KM and Collaboration APIs ?
    Which references do I need in portalapp.xml for KM/collaboration and which jar-Files do I have to add to the project?
    We are using NetWeaver 7.01 SP18.

    Hi  Yogalakshmi,
    thank you for the link and the information. Now I managed to work with the KM documents.
    One more Question: to get the resource Context, I use this code:
    portalUser = WPUMFactory.getServiceUserFactory().getServiceUser("cmadmin_service");
    IResourceContext resourceContext = new ResourceContext(portalUser);
    The method getServiceUser is deprecated, also the com.sapportals.portal.security.usermanagement.IUser is deprecated. Is there an other possibility to get the ResourceContext. (perhaps with com.sap.security.api.IUser) ?

  • Error while creating IViews using collaboration API

    Hi
    I have created one Dynpage portal component, in that i would like to utilize collaboration API.
    I am keep on getting errors like "<b>The compilation unit directly references the missing type ...."</b>"
    import com.sapportals.htmlb.page.DynPage;
    import com.sapportals.htmlb.page.PageException;
    import com.sapportals.portal.htmlb.page.PageProcessorComponent;
    import com.sap.ip.collaboration.room.api.IRooms;
    import com.sapportals.portal.prt.runtime.PortalRuntime;
    import com.sapportals.htmlb.*;
    import com.sapportals.htmlb.enum.*;
    public class Sample extends PageProcessorComponent {
      public DynPage getPage() {
        return new SampleDynPage();
      public static class SampleDynPage extends DynPage
         IRooms roomsAPI = (IRooms)PortalRuntime.getRuntimeResources().getService(IRooms.PORTAL_SERVICE_ID);
    Initialization code executed once per user.
    I have included the following jar files:
    bc.rf.framework_api.jar
    coll.shared.extension_api.jar
    coll.shared.roomobject_api.jar
    coll.shared.types_api.jar
    com.sap.security.api.ep5.jar
    and also i have included com.sap.netweaver.coll.shared in portal.xml as servicesreference
    Experts can you please help in the above problem
    I am sure u will get reward points.
    Thanks in Advance

    HI,
    You have to add the following jars apart from the jars you have mentioned
    1. kmc.util.core_api.jar
    2. umapi.jar
    To find jar files
    ==================
    Download and install the JAR Finder. how to is mentioned in this <a href="https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2951">Weblog</a>. see what jar is required by copying the com.sap.ip.BaseException  from the error "compilation unit references................." and put the "BaseException" in the jar finder and search. from the given options select the correct jar "com.sap.ip.BaseException" right click and add to the project. You can add all the jars required by this method.
    Portalapp.xml
    ==============
    <application-config>
        <property name="SharingReference" value="com.sap.portal.htmlb"/>
        <property name="ServicesReference" value="com.sap.netweaver.coll.shared"/>
      </application-config>
    HI,
    use the BaseException etc the errors you get in NWDS to search for the jar. paste the BaseException and search in jarfinder.
    Message was edited by: Kirupanand Venkatapathi
    Message was edited by: Kirupanand Venkatapathi

  • Flexible UI / Collaboration API

    Hi
    Experts!!!
    can you please suggest for the solution of the below problem.
    I have a created room template which consists of room info, discussions,tasks, Calender, member roles, member lists.....
    using thie above room template i have created  a room.
    When i am creating a room,  I have given a long description and when i entered into the room when i navigate to the room info iview its showing given description with horizantal bar. 
    My requirement is to split the description into two to three lines.
    For the above problem should i develop new custom iview or is there any properties related to this problem.
    If i have to develop custome iview whether i have to proceed with flexible ui or collaboration API.
    can u please suggest and if any coding snippets was appreciated.
    Don't worry about rewarding points!!!
    Thanks in Advance
    Ravi

    Hi,
    to get information about discussion use the Interface IDiscussion.
    IDiscussionItemList getTopics()
              Gets all topics that belong to the discussion. 
    Here is a link to the javadocs https://help.sap.com/javadocs/NW04S/current/km/index.html
    Best Regards
    Frank

  • Collaboration API - Is it possible to retrieve all the projects stored in a specific project folder?

    Hello,Is it possible to retrieve a projects list with the collaboration API from only one information: the project folder where are stored these projects ?
    I parsed the API collaboration reference manual. And I don't find any function allowing me to do that.Can somebody confirm or explain if such a query is possible ?
    Thanks in advance,Christian

    Thanks Caroline. Do you know if such a feature could be available in next versions of the Collab or EDK ?If not, could this be considered as a wish for next releases ?Christian

  • Publishing Doc through collaboration api

    I am looking to publish a document which is stored in collab to the Knowledge Directory from a portlet using the collaboration api. I should be able to do this using publishDocumentToPortal() method in DocumentManager however I can find no javadocs on this that will tell me what the parameters fro the method are. All I can determine is that publishDocumentToPortal(ICollaborationServerContext context, int arg1, int arg2, int arg3) has 4 parameters, 3 of which are ints but what do they represent. The package is com.plumtree.collaboration.api.CollaborationServerManager and the class is IDocumentManager.
    Does anyone know how I can get hold of the javadocs for com.plumtree.collaboration.*
    Using Portal 5.0.3 and Collab 4.0.2 on Windows platform
    Thanks
    [email protected]

    Hi
    You include the following jar files
    bc.rf.framework_api.jar
    coll.shared.extension_api.jar
    coll.shared.types_api.jar
    kmc.util.core_api.jar
    kmc.util.core_core.jar
    and also include sharing reference as mentioned in the collaboration API 6.0 document.

  • Collaboration API

    Hi All
    Is there any collaboration API available to get the discussion topics for a particular room?
    Regards,
    Yoga

    Hi,
    to get information about discussion use the Interface IDiscussion.
    IDiscussionItemList getTopics()
              Gets all topics that belong to the discussion. 
    Here is a link to the javadocs https://help.sap.com/javadocs/NW04S/current/km/index.html
    Best Regards
    Frank

  • Collaboration API - project.store() error

    Hi,
    I am attempting to create a collaboration project via the API using C#. I have based my code on the samples from the "Extending Server Functionality with Remote APIs: Collaboration Server" documentation.
    The following code all works fine:
    IPortletContext portletContext = PortletContextFactory.CreatePortletContext(System.Web.HttpContext.Current.Request, System.Web.HttpContext.Current.Response);
    IPortletRequest portletRequest = portletContext.GetRequest();
    stringloginToken = portletRequest.GetLoginToken();
    Plumtree.Remote.PRC.IRemoteSession portalSession = portletContext.GetRemotePortalSession();
    ICollaborationFactory collabFactory = portalSession.GetCollaborationFactory();
    projectManager = collabFactory.GetProjectManager();
    IProject project = projectManager.CreateProject("NewProjectName", "NewProjectDescription");
    However, the next line fails:
    project.store();
    The exception raised is:
    "System.Web.Services.Protocols.SoapException: Server was unable to process request. --> Invalid pointer at com.plumtree.remote.prc.soap.QueryInterfaceProcedures.QueryInterface(String sLoginToken, String sInterfaceID, String sUUID) in e:\latestbuild\Release\devkit\5.2.x\prc\src\dotnet\portalprocedures\QueryInterfaceProcedures.cs:line 63 at com.plumtree.remote.prc.xp.XPRemoteSession.getCollaborationRemoteServerFromGlobalMap(IXPQueryInterfaceProcedures queryInterfaceProcedures)"
    I am using the following versions:
    Collaboration Server 4.02
    edk.dll 5.2.0
    Portal Server 5.04
    Is there anything I need to install on the Portal server to make the above versions/code compatible or is there a bug in the edk.dll?
    Thanks in advance for any help.
    Regards,
    Greig

    My first question would be you are on Collab 4.0.1+, correct?  Collab 4.0.0 does not have API support.
    I would try hitting a URL in your browser that looks like this:  http://collabmachine:port/collab/services.  You should get a page back that says, &#034;And now... Some Services&#034; followed by a list of about 9 service names.
    If you can get that, your API services are installed/registered.  But your installation probably has some kind of error.  So the next step would be to check your Collab logs for exceptions (located in /ptcollab/4.0/logs I think).

  • API Question

    Does the configurator provide a means of accessing the PS API..? I was contemplating createing a UI using C#/C++ or Delphi and COM but if this tool will give me the UI ability while exposing the SDK API for PS then that would be prefered. I looked through the threads and didnt see this question, apologies if its a dupe.
    Also, is there an example of running scripts and actions for PS from a UI element created with the configurator...?
    Thanks
    David

    Hi David,
    may I suggest you to get a look to the Photoshop Panel Developer's Guide here:
    http://www.adobe.com/devnet/photoshop/pdfs/photoshop_panel_developers_guide.pdf
    It gives you advices and examples on how to build photoshop panels in Flash/Flex (with Flex you've plenty of UI element to play with - sliders, drop down lists, etc). I don't think you need patchpanel, or at least I've been able to do my own stuff without it: I've some javascript functions that are called by the panel depending on few sliders and checkbox.
    Anyway, something that prooved to be impossible without writing some temporary image files and managing in fancy ways the input-output stream is to embed in the panel a PixelBender kernel - something that would make the panel a close brother of a Photoshop plugin
    Regards,
    Davide Barranca
    Bologna, Italy

  • Swing API question

    hello.
    my name is james mcfadden and i am a final year computing student at letterkenny IT in ireland. i have a program here that i want you to take a look at. i am using this program among many programs in my final year project. the program compiles and runs. but when it compiles, i get a message from the jGRASP compiler (which always works well for me) saying that i was using a depracated API function. i found out what that depracated API function was. it was the show() function. this function was used in version 1.4.2 of java, but was dropped out of java 5.0. i checked up the java 5.0 API on the web and discovered that the show() function had been replaced by the setVisible(boolean b) function. i don't know how to use this new API function in my code. the question that i have to ask you is: how do i replace the show() function in my code with the setVisible(boolean b) function? Below is the code and the result i got back from the compiler when i compiled the code. thank you very much for your help.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    class LogOn extends JPanel{
       private static JTextField username=null;
       private static JPasswordField password=null;
       private static JButton button=null;
       public LogOn(){
          setSize(260,160);
          username=new JTextField(15);
          password=new JPasswordField(15);
          JLabel usernameLabel=new JLabel("Username: ");
          JLabel passwordLabel=new JLabel("Password: ");
          add(usernameLabel);
          add(username);
          add(passwordLabel);
          add(password);
          show();
          button=new JButton("Ok");
          add(button);
          button.addActionListener(new ButtonListener());
          JFrame frame=new JFrame("Welcome to Home Entertainment");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.add(this);
          frame.pack();
          frame.setVisible(true);
       private class ButtonListener implements ActionListener{
          public void actionPerformed(ActionEvent e){
             try{
                Demo d = new Demo();
                d.getChoice();
             catch(Exception ex){}
    }----jGRASP exec: javac -g X:\CP4B Project\LogOn.java
    Note: X:\CP4B Project\LogOn.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    ----jGRASP: operation complete.

    Hi James,
    your class extends JPanel. JPanel inherits show from java.awt.Component. If you have a look at the API documentation. The extension path of JPanel is
    java.lang.Object
    java.awt.Component
    java.awt.Container
    javax.swing.JComponent
    javax.swing.JPanel
    javax.swing.JComponent has a method setVisible(<boolean>). That means JPanel has all methods,that are Implemented in JComponent
    So (although I have not yet used it)
    replacing
    show() ;
    by
    setVisible(true) ;
    in your code should do the trick...

  • JDeveloper10g VCS Extension API Question

    Hi.
    I wrote a VCS system for JDeveloper9.0.3 against Microsoft Visual Source Safe, which worked fine. We've now upgraded to 10g, and this system does no longer work, because the JDev's extension API has changed.
    I'm therefore rewriting the system to support the 10g API. But I'm a bit overwhelmed by the changes made to the API. Where do I start?
    1. I wish to implement a new panel in JDev's preferences screen under VersionControl systems which can configure my plugin.
    2. I wish to present files in the Navigator window with overlay icons on files checked in, checked out, not present and such.
    4. I wish to add my plugin to the context menu for the Navigator, so that users can be presented with the choice to perform file operations against VSS.
    3. I wish to present one dialog for single file operations and one for multiple file operations.
    Which classes do I need to extend? Which interfaces do I need to implement?
    Can someone give me directions? The help file for the extension API does not give sufficient answers.

    To answer your other questions:
    The VCSPropertyCustomizer object I've written contains properties I need to use during any VSS operations. Does the IDE store these properties in an easily retrievable place, or do I need to handle this myself.
    You can get a VCSPropertyMap from the Ide like this:
      ((VCSPropertyMap)Ide.getSettings().getData( YOUR_DATA_KEY );
    And another thing, the example above does not describe dialogs on operations like checkin, checkout and so on.
    Would this be implemented in the doitImpl() method in my implementation of VCSAbstractCommand?
    Yes... Below is a snippet from the code for the ClearCase client.
    FWIW, sorry it's so much work to do this. I'm working on an (optional, i.e won't break existing code) way of just writing a simple xml file to integrate version control clients into JDeveloper that should hopefully make everyone's life easier in the future :P
      protected int doitImpl() throws Exception
        final Collection nodes = getNodesToCheckIn();
        if ( nodes.size() <= 0 )
          return NOOP;
        if (! saveDirtyDocuments( nodes ))
          return Command.CANCEL;
        final Map timestampMap = VCSBufferUtils.storeTimestamps( nodes );
        final VCSDirectoryInvokableState invokableState =
            new VCSDirectoryInvokableState( VCSModelUtils.convertNodesToURLs(
                nodes ) );
        final VCSCommandState state = new VCSCommandState( invokableState,
            timestampMap );
        if ( context.getView() instanceof ClearCaseChangeListWindow &&
          !((ClearCaseChangeListWindow)context.getView()).isUsingCheckInDialog() )
          return checkInSilently( nodes, state,
            ClearCaseClient.getInstance().getChangeListCustomizer() );
        else
          return checkIn( nodes, state );
      protected void noOpImpl() throws ClearCaseValidationException
        throw new ClearCaseValidationException(
            ResourcePicker.get().getString( "ERROR_CHECKIN_FILTERED_TITLE" ), //NOTRANS
            ResourcePicker.get().getString( "ERROR_CHECKIN_FILTERED" ) ); //NOTRANS
      private int checkInSilently(
        final Collection nodes,
        final VCSCommandState state,
        final VCSOptionsCustomizer customizer )
        Ide.getWaitCursor().show();
        Runnable r = new Runnable()
          public void run()
            try
              doCommitOperationImpl( Ide.getMainWindow(), customizer.getOptions(),
                state );
            catch ( Exception e )
              getExceptionHandler().handleException( e, Ide.getMainWindow() );
            finally
              EventQueue.invokeLater( new Runnable()
                public void run()
                  Ide.getWaitCursor().hide();
                  postCheckIn( state );
        Thread t = new Thread( r, "ClearCase Check In Committer" ); // NOTRANS
        t.start();
        return OK;
      private int checkIn( final Collection nodes,
          final VCSCommandState state )
        throws Exception
        boolean multiCheckin = ( nodes.size() > 1 );
        final VCSOptionsCustomizer customizer =
            new VCSCommentsCustomizer( new ClearCaseCheckinCustomizer(),
            multiCheckin );
        if ( getContext().getView() instanceof ClearCaseChangeListWindow )
          customizer.setOptions(
            ClearCaseClient.getInstance().getChangeListCustomizer().getOptions()
        final JEWTDialog dialog = VCSComponents.createOperationDialog(
          VCSWindowUtils.getCurrentWindow(),
          ResourcePicker.get().getString( "CHECKIN_CAPTION" ), //NOTRANS
          ResourcePicker.get().getString( "CHECKIN_LONG_PROMPT" ), //NOTRANS
          VCSComponents.createFileListerComponent( nodes ),
          customizer.getComponent(),
          "f1_clearcasechkin_html", //NOTRANS
          customizer.getInitialFocusComponent()
        Map options = null;
        if ( ! multiCheckin )
          String checkoutComments = retrieveCheckoutComments( ((Locatable)nodes.
              iterator().next()).getURL() );
          // bug 3067323 - check in dialog does not prepopulate with check out comments
          if ( checkoutComments != null )
            customizer.setOptions( Collections.singletonMap( KEY_SETTING_COMMENTS,
                checkoutComments ) );
        else
          customizer.setOptions( Collections.singletonMap(
              KEY_SETTING_REUSE_COMMENTS, _optionReuseComments ) );
        dialog.addVetoableChangeListener( new VCSDialogCommitter()
          protected final boolean doCommitOperation() throws Exception
            return doCommitOperationImpl(
                dialog, customizer.getOptions(), state);
        boolean dialogSuccessful = ClearCaseDialogRunner.runDialog( dialog );
        postCheckIn( state );
        _optionReuseComments = (Boolean)customizer.getOptions().get(
            KEY_SETTING_REUSE_COMMENTS );
        return (! dialogSuccessful ? Command.CANCEL : Command.OK);
      private void postCheckIn( VCSCommandState state )
        Collection processedUrls = state.getInvokableState().getProcessedURLs();
        if ( processedUrls.size() > 0 )
          VCSBufferUtils.reloadBuffers( state.getTimestampMap() );
        URLFilter filter = VCSURLFilters.createSpecificURLFilter(
          (URL[])processedUrls.toArray( new URL[0] ) );
        ClearCaseClient.getInstance().getStatusCache().clear( filter );
      private boolean doCommitOperationImpl(
          Component dialog, Map options, VCSCommandState state )
          throws Exception
        DeterminateProgressMonitor monitor = new DeterminateProgressMonitor(
          dialog,
          ResourcePicker.get().getString( "CHECKIN_PROGRESS_TITLE" ), //NOTRANS
          ResourcePicker.get().getString( "CHECKIN_WATCHER_DESCRIPTION" ), //NOTRANS
          0,
          -1
        final ClearCaseShellRunner runner = new ClearCaseShellRunner();
        List cmd = new ArrayList();
        cmd.add( "ci" ); //NOTRANS
        Boolean b = (Boolean)options.get( KEY_SETTING_IDENTICAL_CHECKIN );
        if (b != null && b.booleanValue())
          cmd.add( "-ide" ); //NOTRANS
        b = (Boolean)options.get( KEY_SETTING_REUSE_COMMENTS );
        String s = null;
        if (b == null || ! b.booleanValue())
          s = (String)options.get( KEY_SETTING_COMMENTS );
        URL commentFile = writeCommentsFile( s, cmd );
        runner.setCmdList( cmd );
        VCSDirectoryInvokable invokable = new ClearCaseDirectoryInvokable(
            state.getInvokableState(), ClearCaseUtil.FILE_COMMAND_BATCH_SIZE )
          protected final boolean doInvocation2( URL parent, URL[] invokeUrls )
              throws Exception
            String[] filenames = VCSFileSystemUtils.getURLFileNames( invokeUrls );
            runner.setDirURL( parent );
            runner.setOptions( Arrays.asList( filenames ) );
            doInvocationImpl( runner );
            return true;
        invokable.setProgressMonitor( monitor );
        try
          if (! invokable.runInvokable())
            return false;
        finally
          if ( commentFile != null )
            URLFileSystem.delete( commentFile );
        return true;
      private void doInvocationImpl( ClearCaseShellRunner runner ) throws Exception
        runner.exec();
        String error = runner.getErrorText();
        if ( error != null &&
             error.indexOf( "The most recent version on branch" ) >= 0 && //NOTRANS
             error.indexOf( "is not the predecessor of this version" ) >= 0 ) //NOTRANS
          throw new ClearCaseOperationException(
            ResourcePicker.get().getString( "ERROR_CHECKIN_FAILED_TITLE" ), //NOTRANS
            ResourcePicker.getPicker( ClearCaseOperationCheckin.class ).getString(
                "ERROR_CHECKIN_FAILED_SUBSUMED" ) ); //NOTRANS
        if (runner.getExitCode() == null ||
            runner.getExitCode().intValue() != 0)
          throw new ClearCaseProcessException(
            ResourcePicker.get().getString( "ERROR_CHECKIN_FAILED_TITLE" ), //NOTRANS
            ResourcePicker.getPicker( ClearCaseOperationCheckin.class ).getString(
                "ERROR_CHECKIN_FAILED" ), runner.getErrorText() ); //NOTRANS
      private String retrieveCheckoutComments( URL url )
        // bug 3067323 - check in dialog does not prepopulate with check out comments
        String[] cmd = new String[] { "lsco", "-me", "-fmt", "%c", "-cvi", //NOTRANS
            URLFileSystem.getPlatformPathName( url ) };
        try
          ClearCaseShellRunner runner = new ClearCaseShellRunner();
          URL parent = URLFileSystem.getParent( url );
          if ( url == null )
            return null;
          runner.setCmdArray( cmd );
          runner.setDirURL( parent );
          runner.setQuiet( true );
          runner.exec();
          String output = runner.getOutputText();
          if ( output != null && output.equals( "" ) )
            return null;
          return output;
        catch ( Exception e )
          oracle.ide.util.Assert.printStackTrace( e );
          return null;

  • GraphViz  API  Question

    I am looking for someone with experience working with the GraphViz API. Do you have experience working with GraphViz? If you are such a person, please say ?Hello? to prompt my question. Thank you. Mike

    Hi David,
    may I suggest you to get a look to the Photoshop Panel Developer's Guide here:
    http://www.adobe.com/devnet/photoshop/pdfs/photoshop_panel_developers_guide.pdf
    It gives you advices and examples on how to build photoshop panels in Flash/Flex (with Flex you've plenty of UI element to play with - sliders, drop down lists, etc). I don't think you need patchpanel, or at least I've been able to do my own stuff without it: I've some javascript functions that are called by the panel depending on few sliders and checkbox.
    Anyway, something that prooved to be impossible without writing some temporary image files and managing in fancy ways the input-output stream is to embed in the panel a PixelBender kernel - something that would make the panel a close brother of a Photoshop plugin
    Regards,
    Davide Barranca
    Bologna, Italy

  • E10 API Question

    Since we have in E10 Campaign Canvas and Program Builder, does the Step ID is unique between the two in any instance?
    Of course I am asking the question from an API perspective, so is it safe to assume Step ID (canvas or builder) will be unique per Eloqua instance?

    Correct, the StepID is unique per instance.  Does not matter if it's a PB step or a Canvas step.

  • JavaMail api question..

    I'am trying to send an e_mail to myself using the javaMail API.
    I have already installed it (and also the Java Activation Framework).
    The code is:
    import javax.mail.*;
    import javax.mail.internet.*;
    import java.util.Properties;
    import java.util.Date;
    import java.io.*;
    public class PruebaMail {
    public static void main(String[] argv) {
              try {
                   Properties props = new Properties();
                   Session sendMailSession;
                   Store store;
                   Transport transport;
                   sendMailSession = Session.getInstance(props, null);
                   props.put("mail.smtp.host", "SMTP.mail.yahoo.com");
                   Message newMessage = new MimeMessage(sendMailSession);
                   newMessage.setFrom(new InternetAddress("[email protected]"));
                   newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
                   newMessage.setSubject("Prueba 1234");
                   newMessage.setSentDate(new Date());
                   newMessage.setText("Le escribimos para informarle que alguien ha respondido a su consulta");
                   transport = sendMailSession.getTransport("smtp");
                   transport.send(newMessage);
              } catch (MessagingException e1) {
              System.out.println("PruebaMail MessagingException:" + e1.getMessage());
    .. but, issuing C:\>java PruebaMail .. I get this error:
    PruebaMail MessagingException:Sending failed;
    nested exception is:
         javax.mail.MessagingException: Unknown SMTP host: SMTP.mail.yahoo.com;
    nested exception is:
         java.net.UnknownHostException: SMTP.mail.yahoo.com
    so, my question is:
    1. What is wrong in my code. Do you know an available SMTP server which
    allows relaying??
    thanks in advance!

    Reverse this order:
    sendMailSession = Session.getInstance(props, null);
    props.put("mail.smtp.host", "SMTP.mail.yahoo.com");Any property should be set before getting a Session instance.
    If your mail server expects authentication you should give one more property, so the code will be:
    if(user != null) // should be authenticated
      props.put("mail.smtp.auth", "true");
    else
      props.put("mail.smtp.auth", "false");
    props.put("mail.smtp.host", "SMTP.mail.yahoo.com");
    sendMailSession = Session.getInstance(props, null);
    ... // fill newMessage
    if(user != null) { // should be authenticated
      newMessage.saveChanges();
      Transport transport = session.getTransport("smtp");
      transport.connect(mailhost, user, password);
      transport.sendMessage(newMessage, newMessage.getAllRecipients());
      transport.close();
    else
      Transport.send(newMessage);

  • Oracle Install Base API question

    Hi...I need help. I am writing an extension to the Service Fulfillment Manager (SFM) Transactions
    Here is a functional background:
    For all SFM message types, SFM exposes the PL/SQL code in the iMessage studio. iMessage studio is an Oracle EBS Application tool. The PL/SQL for the following message types will be modified:
    ·     Sales Order Shipment - CSISOSHP
    ·     Miscellaneous Receipt - CSIMSRCV
    ·     Receipt into Inventory – CSIPOINV
    The processing logic for each of these transaction types contains a call to an Installed Base package and stores the return status in a variable. For PO Receipt and SO Issue transactions referencing serial numbers prefixed by the Vertical Bar (‘|’) character this call will be bypassed and a successful status placed in the return status variable.
    For PO Receipt and Miscellaneous Receipt transactions referencing serial numbers not prefixed by the Vertical Bar (‘|’) character, the processing logic will be extended to extract the IUID value from the serial numbers table in the Oracle Inventory module (MTL_SERIAL_NUMBERS) and call the public IB Application Programming Interface (API) (CSI_ITEM_INSTANCE_PUB.UPDATE_ITEM_INSTANCE) to update the associated IB instance with the IUID.
    OK, so Question #1:
    I get all I need to do is bypass the code in 2 instances if a bar is found at the beginning of the serial number.. And I can do that. But where is this serial number? I assume it is stored in MTL_SERIAL_NUMBERS but how do I get it?
    The code doesn't have it stored as a variable, and it doesn't seem to have the IB record either. Is there a foreign key? Anyone have imessage studio and can look into that?
    Question #2:
    To update the IB record with the serial number I need to make a call to the below procedure. The thing is, it seems to require the IB instance record. Again, I don't have that cause the code is creating it! Is there some way to get that created record back and pass it into the update procedure?
    PROCEDURE update_item_instance
    p_api_version IN NUMBER
    ,p_commit IN VARCHAR2
    ,p_init_msg_list IN VARCHAR2
    ,p_validation_level IN NUMBER
    ,p_instance_rec IN csi_datastructures_pub.instance_rec
    ,p_ext_attrib_values_tbl IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl
    ,p_party_tbl IN OUT NOCOPY csi_datastructures_pub.party_tbl
    ,p_account_tbl IN OUT NOCOPY csi_datastructures_pub.party_account_tbl
    ,p_pricing_attrib_tbl IN OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl
    ,p_org_assignments_tbl IN OUT NOCOPY csi_datastructures_pub.organization_units_tbl
    ,p_asset_assignment_tbl IN OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
    ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
    ,x_instance_id_lst OUT NOCOPY csi_datastructures_pub.id_tbl
    ,x_return_status OUT NOCOPY VARCHAR2
    ,x_msg_count OUT NOCOPY NUMBER
    ,x_msg_data OUT NOCOPY VARCHAR2
    Thanks for any and all help in advance!

    OK! I found the instance id!
    But when trying to get the IB record, the API fails. Can someone take a look at this...what's wrong?
    msg_data from API call =
    MSG DATA FND FND_AS_UNEXPECTED_ERROR N PKG_NAME CSI_ITEM_INSTANCE_PUB N PROCEDURE_NAME GET_ITEM_INSTANCE_DETAILS N ERROR_TEXT ORA-01008: not all variables bound
    PROCEDURE populate_iuid(
    p_transaction_id IN NUMBER
    IS
    l_api_version CONSTANT NUMBER := 1.0;
    l_msg_count NUMBER;
    l_msg_data VARCHAR2(2000);
    l_msg_index NUMBER;
    l_instance_id_lst csi_datastructures_pub.id_tbl;
    l_instance_header_rec csi_datastructures_pub.instance_header_rec;
    l_party_header_tbl csi_datastructures_pub.party_header_tbl;
    l_party_acct_header_tbl csi_datastructures_pub.party_account_header_tbl;
    l_org_unit_header_tbl csi_datastructures_pub.org_units_header_tbl;
    l_instance_rec csi_datastructures_pub.instance_rec;
    l_party_tbl csi_datastructures_pub.party_tbl;
    l_account_tbl csi_datastructures_pub.party_account_tbl;
    l_pricing_attrib_tbl csi_datastructures_pub.pricing_attribs_tbl;
    l_org_assignments_tbl csi_datastructures_pub.organization_units_tbl;
    l_asset_assignment_tbl csi_datastructures_pub.instance_asset_tbl;
    l_ext_attrib_values_tbl csi_datastructures_pub.extend_attrib_values_tbl;
    l_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
    l_ext_attrib_tbl csi_datastructures_pub.extend_attrib_values_tbl;
    l_ext_attrib_def_tbl csi_datastructures_pub.extend_attrib_tbl;
    l_asset_header_tbl csi_datastructures_pub.instance_asset_header_tbl;
    l_txn_rec csi_datastructures_pub.transaction_rec;
    l_return_status VARCHAR2(2000) ;
    l_instance_id NUMBER := 0 ;
    l_serial_number VARCHAR2(30);
    l_inventory_item_id NUMBER := 0 ;
    l_iuid VARCHAR2(150);
    CURSOR c_get_serial_numbers( p_transaction_id NUMBER ) IS
    SELECT inventory_item_id, serial_number, attribute1
    FROM mtl_unit_transactions
    WHERE transaction_id = p_transaction_id;
    BEGIN
    -- GET THE SERIAL NUMBER AND INVENTORY ITEM ID BY USING THE TRANSACTION ID
    FOR rec IN c_get_serial_numbers( p_transaction_id ) LOOP
    l_inventory_item_id := rec.inventory_item_id;
    l_serial_number := rec.serial_number;
    l_iuid := rec.attribute1;
    -- GET THE INSTANCE ID BY USING THE SERIAL NUMBER AND INVENTORY ITEM ID
    SELECT instance_id
    INTO l_instance_id
    FROM csi_item_instances
    WHERE inventory_item_id = l_inventory_item_id
    AND serial_number = l_serial_number;
    -- RETRIEVE THE INSTANCE RECORD TO BE UPDATED
    l_instance_rec.instance_id := l_instance_id;
    csi_item_instance_pub.get_item_instance_details(p_api_version => l_api_version
    ,p_commit => fnd_api.g_false
    ,p_init_msg_list => fnd_api.g_false
    ,p_validation_level => fnd_api.g_valid_level_full
    ,p_instance_rec => l_instance_header_rec
    ,p_get_parties => fnd_api.g_true
    ,p_party_header_tbl => l_party_header_tbl
    ,p_get_accounts => fnd_api.g_true
    ,p_account_header_tbl => l_party_acct_header_tbl
    ,p_get_org_assignments => fnd_api.g_true
    ,p_org_header_tbl => l_org_unit_header_tbl
    ,p_get_pricing_attribs => fnd_api.g_false
    ,p_pricing_attrib_tbl =>l_pricing_attribs_tbl
    ,p_get_ext_attribs => fnd_api.g_false
    ,p_ext_attrib_tbl => l_ext_attrib_tbl
    ,p_ext_attrib_def_tbl => l_ext_attrib_def_tbl
    ,p_get_asset_assignments => fnd_api.g_false
    ,p_asset_header_tbl => l_asset_header_tbl
    ,p_resolve_id_columns => fnd_api.g_false
    ,p_time_stamp => SYSDATE
    ,x_return_status => l_return_status
    ,x_msg_count => l_msg_count
    ,x_msg_data => l_msg_data
    );

Maybe you are looking for