GET_PRINT_DOCUMENT returns empty PDF

I'm attempting to use the GET_PRINT_DOCUMENT API to create a pdf report and store it in a table. However, the api always returns an empty BLOB. The test report for the Report Query, 'testSQL', runs fine.
The 'After Submit' process is as follows:
DECLARE
v_pdf blob;
BEGIN
v_pdf := APEX_UTIL.GET_PRINT_DOCUMENT (p_application_id => 16228
,p_report_layout_name => 'testSQL'
,p_report_query_name => 'testLayout'
,p_report_layout_type => 'rtf'
,p_document_format => 'pdf');
INSERT INTO report_inbox(user_id, report_name,mime_type, report)
VALUES ('ddornan','TestPDF', 'application/pdf',v_pdf);
COMMIT;
END;

Hi David.
I am using the same syntax code block with success. The only things I can suggest are..
1) Double check the spelling and CaPiTaLiSaTiOn of your query name and template name.
2) You may want to conisder declaring your application ID as a variable like this...
  v_app_id             NUMBER(10) := NV('APP_ID'); Thus avoiding any deployment issues with hardcoded application ID's.
Aside from that, the syntax looks great.
I'd be happy to take a look at the application for you if you put it on APEX.oracle.com
I've got quite a bit of experience using this functionality and would be happy to share any knowledge I can.
Simon.

Similar Messages

  • Apex_util.get_print_document returns empty blob

    Hi,
    I'm trying to convert a xsl-fo template into PDF. I have the following code:
    begin
    declare
    v_retval blob;
    v_data blob;
    v_xls clob;
    v_xml_dat clob;
    begin
    select page_template
    into v_xls
    from flows_030100.wwv_flow_report_layouts
    where flow_id =101
    and report_layout_name = 'vv';
    v_xml_dat := to_clob('<data><row><dat1>fff</dat1></row></data>');
    v_data := wwv_flow_utilities.clob_to_blob(v_xml_dat);
    v_retval := apex_util.get_print_document (v_data,v_xls,'xsl-fo','pdf')
    htp.p(dbms_lob.getlength(v_retval));
    end;
    end;
    This returns 0 instead of some PDF document. I guess there is something wrong with my input, probably the XML data. Any thoughts?

    Anyone?

  • APEX_UTIL.GET_PRINT_DOCUMENT always returning empty BLOB

    Dear community,
    I have a huge problem when using the function APEX_UTIL.GET_PRINT_DOCUMENT in a job or database procedure.
    The following code runs perfectly when I integrate it in the APEX application directly e.g. using a button to execute it (of course I use an anonymous PL/SQL block in APEX itself). But when I run the same code as a procedure or job in the APEX database itself I always receive a mail with an empty PDF:
    CREATE OR REPLACE PROCEDURE APEX_DRUG_SAFETY.CALL_MAIL
    is
    l_id number;
    l_document BLOB;
    BEGIN
    wwv_flow_api.set_security_group_id;
    l_document := APEX_UTIL.GET_PRINT_DOCUMENT
    +(+
    p_application_id=>'105',
    p_report_query_name=>'TestReport',
    p_report_layout_type=>'pdf',
    p_document_format=>'pdf'
    +);+
    l_id := APEX_MAIL.SEND
    +(+
    p_to        => '[email protected]',
    p_from      => '[email protected]',
    p_subj      => 'sending PDF via print API',
    p_body      => 'Please review the attachment.',
    p_body_html => 'Please review the attachment.'
    +);+
    APEX_MAIL.ADD_ATTACHMENT
    +(+
    p_mail_id    => l_id,
    p_attachment => l_document,
    p_filename   => 'mydocument.pdf',
    p_mime_type  => 'application/pdf'
    +);+
    wwv_flow_mail.push_queue(
    P_SMTP_HOSTNAME => 'DESMTP.TEST.COM',
    P_SMTP_PORTNO => '25');
    end;
    The problem is that the function APEX_UTIL.GET_PRINT_DOCUMENT always returns an empty BLOB when executed outside of the APEX application. I found this issue in several other posts in this forum but I did not find a solution.
    The mail transmission itself works perfectly. Also with an attachment if e.g. I use another BLOB already stored in the database for testing purposes. So it is not the mail transmission that causes the problem but the empty variable l_document that is still empty.
    Thanks in advance for the help.

    user9007075 wrote:
    Dear community,
    wwv_flow_api.set_security_group_id;
    you should be using this
        l_workspace_id := apex_util.find_security_group_id (p_workspace => 'YOUR_WORKSPACE_NAME');
        apex_util.set_security_group_id (p_security_group_id => l_workspace_id);
    http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21676/apex_util.htm#AEAPI512

  • EntryProcessor invokeAll returning empty ConverterMap{}

    Hi All,
    I am trying to write a custom entryprocessor and whatever I return from the invokeAll method in the entryprocessor, I am always getting a empty ConverterMap{}. The code for the entryprocessor is as below:
    public class CustomEP implements PortableObject, EntryProcessor {
         public CustomEP (){
    public Map processAll(Set entries) {
              Map results=new HashMap ();
    results.put ("1", "1");
    System.out.println("Inside process All method");
              return results;
    public Object process(Entry arg0) {
              Map results=new HashMap ();
    results.put ("1", "1");
    System.out.println("Inside process method");
              return results;
    The client code to invoke this entryprocessor is as below:
    Map results=cache.invokeAll(AlwaysFilter.INSTANCE, new CustomEP());
    The processAll method on the Coherence nodes is invoked but if the print the results on the client side it return empty ConverterMap{}
    On the other hand, if I invoke process method of CustomEP as below:
    Map results=(Map) cache.invoke(AlwaysFilter.INSTANCE, new CustomEP());
    I get the desired results. Please help me with the details why it is happening this way when the return type of the processAll is a Map.
    Thanks a lot!
    Regards,
    S

    911767 wrote:
    Hi Robert and JK,
    Thank you for your reply and time!
    I could not find these details in any of the documentation that specifies keys passed in the result should be subset of the keys passed to the processAll method. Anyways, my problem is to invoke server-side code (avoid de-serialization) by passing a filter and then create a entirely new map (key and value will be different from the entries extracted from the passed filter) by reading the data from the passed entries. How can I implement it?
    I am thinking to use aggregator as they are read-only and faster but again how to implement it using:
    public Object aggregate(Set entries){
    Again, I am getting an empty Map so is it necessary that the object returned should have keys matching the set of the entries passed to this method.
    Secondly, there are other methods such as, finalizeResult() and init() if I extend AbstractAggregator, do I need to implement them and if yes, how? The entries set passed to the aggregate() method may not reside on the same node.
    Please advise!
    Regards,
    SHi S,
    the process() return value object, or the entry value objects in the map returned by processAll() can be arbitrary objects. So you just return a map from process(), and return a map as the entry value in the result map from processAll().
    The AbstractAggregator has a fairly badly documented contract in the Javadoc (does not properly cover the values received in different scenarios for invocation). You should probably read the section about it in the Coherence book, that explains leveraging AbstractAggregator in significantly more details. It also happens to be in the sample chapter, but I recommend reading the entire book.
    I am not sure about the issues relating to posting links to PDFs on Packt's webpage, so I won't do that. Please go to Packt's webpage (http://www.packtpub.com ), look for the Coherence book there and download the sample chapter (or order the book).
    In short, all 3 to-be-implemented methods (init(), process(), finalizeResult()) in AbstractAggregator are called both on the server and on the caller side. You can distinguish which side you are on from looking at both the passed in fFinal boolean parameter and the m_fParallel attribute tof the aggregator instance.
    There are 3 cases:
    - non-parallel aggregation processing extracted values (m_fParallel is false, I don't remember what fFinal is in this case),
    - parallel aggregation storage side processing extracted values (if I correctly remember, m_fParallel is true, fFinal is false),
    - parallel aggregation caller side processing parallel results (m_fParallel and fFinal are both true).
    Depending on which side you are on, the process method takes different object types (on server side it receievs the extracted value, on caller side it receives a parallel result object instance).
    You SHOULD NOT override any of the other methods (e.g. aggregate() which you mentioned).
    The advantage of this approach is that the AbstractAggregator subclass instance can pass itself off as a parallel-aggregator instance.
    You should put together a temporary result in a member attribute of the AbstractAggregator subclass, which also means that it will likely not be thread-safe, but at the moment it is not necessary for it to be thread-safe either as it is called only on a single-thread.
    Best regards,
    Robert
    Edited by: robvarga on Feb 3, 2012 10:38 AM

  • Returning a PDF to the browser

    Hi,
    We have an ASP the extract data in teh form of XML pass it to AOS (Adobe Output Server) which then render it into a PDF document. What we are looking is basically to return that PDF document to the user browser after the ASP execution.
    Any idea how to do that???
    Many thanx
    Regards
    Yasser

    You have a several of choices (in decreasing preference):
    1) Purchase Adobe Web Output Pak... it was designed to do exactly this and comes with ASP examples.
    2) Call JfMerge.exe (the Central Print Agent) directly from the ASP. It will create a PDF file that the ASP will have to copy back to the user.
    3) Have the ASP drop the file in Central's collector directory and then wait for the PDF file to show up (no guaranties when it will show up).
    Central was primarily intended for batch processing applications and you're describing an on-line scenario. That's why Web Output Pak is better suited for you.
    Regards,
    Rob McDougall
    Indigo Pacific Ltd.

  • Xslt copy-of creates a xml which returns empty while trying to access elements using XPATH

    Hi
    I am trying to do a copy-of function using the XSLT in jdev. This is what I do
        <xsl:param name="appdataDO"/>
        <xsl:template match="/">
        <ns1:applicationData>
          <ns1:applicationId>
            <xsl:value-of select="$appdataDO/ns1:applicationData/ns1:applicationId"/>
          </ns1:applicationId>
          <xsl:copy-of select="/fslo:ExternalapplicationData/fslo:ApplicationsHDRAddInfo">
          </xsl:copy-of>
        </ns1:applicationData>
        </xsl:template>
        </xsl:stylesheet>
    After this I can see the document created in the process flow as this :
        <ns1:applicationData>
        <ns1:applicationId>MMMM</ns1:applicationId>
        <ns2:ApplicationsHDRAddInfo>
        <ns3:genericFromBasePrimitive>iuoui</ns3:genericFromBasePrimitive>
        <ns4:EstimatedMarketValue>77</ns4:EstimatedMarketValue>
        <ns4:PropertyInsuranceFee>jih</ns4:PropertyInsuranceFee>
        <ns4:LoanOriginationFee>hjh</ns4:LoanOriginationFee>
        <ns4:RegistrarFee>kkkkk</ns4:RegistrarFee>
        <ns4:LoanCashInFee>hjh</ns4:LoanCashInFee>
        <ns4:LoanPaidInCashFlag>cddffgd</ns4:LoanPaidInCashFlag>
        </ns2:ApplicationsHDRAddInfo>
        </ns1:applicationData>
    But whenever I am trying to extract any of the output nodes I am getting an empty result. I can copy the whole dataset into similar kind of variable.
    But I am unable to get individual elements using XPATH.
    I tried using exslt function for node set and xslt 2.0 without avail.
    The namespaces might be the culprit here . The test method in the jdev is able to output a result but at runtime the xpath returns empty .
    I have created another transform where I try to copy data from the precious dataobject to a simple string in another data object .
    This is the test sample source xml for the transform created by jdev while testing with all namespaces, where I try to copy the data in a simple string in another data object.
        <applicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/bpmpa/fs/ulo/types file:/C:/JDeveloper/NewAPP/Xfrm/xsd/ApplicationData.xsd" xmlns="http://xmlns.oracle.com/bpmpa/fs/ulo/types">
           <applicationId>applicationId289</applicationId>
           <ApplicationsHDRAddInfo>
              <genericFromBasePrimitive xmlns="http://xmlns.oracle.com/bpm/pa/extn/types/BasePrimitive">genericFromBasePrimitive290</genericFromBasePrimitive>
              <EstimatedMarketValue xmlns="http://xmlns.oracle.com/bpm/pa/extn/headerCategories/">291</EstimatedMarketValue>
              <PropertyInsuranceFee xmlns="http://xmlns.oracle.com/bpm/pa/extn/headerCategories/">PropertyInsuranceFee292</PropertyInsuranceFee>
              <LoanOriginationFee xmlns="http://xmlns.oracle.com/bpm/pa/extn/headerCategories/">LoanOriginationFee293</LoanOriginationFee>
              <RegistrarFee xmlns="http://xmlns.oracle.com/bpm/pa/extn/headerCategories/">RegistrarFee294</RegistrarFee>
              <LoanCashInFee xmlns="http://xmlns.oracle.com/bpm/pa/extn/headerCategories/">LoanCashInFee295</LoanCashInFee>
              <LoanPaidInCashFlag xmlns="http://xmlns.oracle.com/bpm/pa/extn/headerCategories/">LoanPaidInCashFlag296</LoanPaidInCashFlag>
           </ApplicationsHDRAddInfo>
        </applicationData>
    And the xslt
        <xsl:template match="/">
            <ns1:DefaultOutput>
              <ns1:attribute1>
                <xsl:value-of select="/fslo:applicationData/fslo:ApplicationsHDRAddInfo/custom:LoanOriginationFee"/>
              </ns1:attribute1>
            </ns1:DefaultOutput>
          </xsl:template>
    This results in a empty attribute1. Any help will be appreciated .

    Please delete attributeFormDefault="qualified" elementFormDefault="qualified" from your XSD
    Please check the next link:
    http://www.oraclefromguatemala.com.gt/?p=34

  • How to return a pdf (iText) file using Portlet?

    Dear all,
    I want to know how to return a pdf file using iText API via Portlet.
    I can manage to return a pdf file through a standalone servlet, but I don't have idea of how to generate a pdf file via Portlet.
    Can anyone help me?
    Thanks
    George (HK)
    Welcome to my blog at www.xanga.com/georgelkh

    Hello,
    that is easy. In your driver program, please check the inputs of the job/ generator function modules.
    You provide GETPDF = 'X' attribute what will make the FM not to print the form or display the preview but to return the binary stream of the PDF data (type FPCONTENT) what is a RAW or something. Next look for the PDF output parameter to get the returned binary data and send it as you wish through JCo.
    Regards Otto
    p.s.: Note there is Adobe forms forum under NetWeaver, you can find me and the others doing Adobe every day

  • HTML returning a PDF?

    Heya all --
    I have a client who is requesting an HTML form that updates a
    database, then returns a PDF that includes some of the data entered
    in the form. The PDF is an existing document, and is quite
    extensive, so creating a new one every time seems inefficient. I'd
    love to be able to put some input fields on the PDF, and have a
    server-side script propigate the fields with the incoming data,
    then flatten the PDF and return it. Does anyone know if this is
    possible, and if so how would it be done?
    Thanks so much for any help!
    -Lucas

    Sorry, I think I may have posted to the wrong forum. Please
    forgive the intrusion!
    -Lucas

  • Empty PDF in IE after opening FDF directly from Outlook

    Hi,
    im currently facing a old/known problem and i found no optimal solution for it.
    One of our clients migrated from XP to Win7 and since that the opening of a FDF-file from Outlook only opens the empty PDF in IE (Internet Explorer).
    (I found the problem in this forum, but no solution: "FDF file not opening in IE 8 with Adobe reader 9 or Adobe pro 9" - http://forums.adobe.com/message/3753591#3753591 )
    I did some investigation and found, that the problem seems to be the Folder "C:\Users\MYUSER\AppData\Local\Microsoft\Windows\Temporary Internet Files", where Outlook saves the FDF-file temporarily to open it with IE. (this folder is a Windows-'Systemfolder', the FDF-file can be found in a hidden subfolder 'Content.Outlook\????????\' (??..?? are various alphanumeric chars))
    If you browse to that folder and opens the FDF manually it shows the same behaviour (only empty PDF) as opened with Outlook.
    If you copy the FDF out of the 'Temporary Internet Files' eg. to 'C:\Users\MYUSER\AppData\Local\Microsoft\Windows\' or Desktop and then opens the FDF the PDF will be opened correctly filled within IE.
    After playing a lot with IEs Security-Settings i found that disabling the 'protected mode' for the 'Internet'-zone solves the problem and PDFs get opened filled, but for security reasons this is not an option (IE warns on disabling 'protected mode' that's a risk for your computer).
    Another way I found was using another temp-path for Outlook-attachments - defined by registry-key 'HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Security\OutlookSecureTempFolde r'  - eg. 'C:\temp' (our client is currently evaluating this solution - it's also not perfect for security reasons)
    Any other ideas to solve this problem (except my initially one - using Firefox ;-) - i think Firefox is a perfect solution, but sadly not accepted by the client)?
    thanks

    I hate to bring up an old post, but I also have the same issue.  We also found that disabling the UAC solved the issue, but is not an acceptable solution for our client either.
    I went on MS forum asking what the UAC might be doing and was told to come ask the Adobe forums (how convenient)
    So if anyone has found anything on this subject, I'm all ears!

  • Applescript: file.open("r") returns empty in jsx

    Hey guys,
    i am having a bit of a scripting problem here. The big goal for me at the moment is creating a UI script to control aerender.
    To achieve getting feedback from the terminal about when an aerender process is completed, i let the terminal trigger an applescript running a jsx inside after effects (since the terminal can't run a jsx inside after effects itself).
    However, this particular script needs to eval the contents of a text file that is outputted during the render process (its just a log file put into a fixed location). No matter what i do: I can't get a proper response from the script. Here is what should happen when a render is done:
    function RenderEnd () {
    var report = new File ("Macintosh HD/Users/macname/generallog.txt");
    report.open("r");
    var reportstring = report.read();
    report.close();
    var reportendindex = reportstring.indexOf("Total Time Elapsed:");
    var reportcloseindex = reportstring.indexOf("aerender version");
    var reportendstring = reportstring.substring(reportendindex, [reportcloseindex]);
    var regex = /Finished composition/gi, result, indices = [];
    while ( (result = regex.exec(reportstring)) ) {
        indices.push(result.index);
    var ItemStringArray = new Array ();
    for(var i=0; i<indices.length; i++){
        ItemStringArray.push("Finished Item " + (i+1) + ": " + reportstring.substring(indices[i]-32, [indices[i]-2]));
    var AlertString = "Rendering done." + "\r" + reportendstring + "\r" + ItemStringArray.toString().replace(",","\r");
    alert(AlertString);
    RenderEnd ();
    Running this script by itself properly returns an alert containing a message "Rendering done." plus additional info about the render time and item completion.
    But whenever i have the following applescript triggering the above jsx script...
    set scriptfile to (POSIX file ("/Applications/Adobe After Effects CS5.5/Scripts/AERenderEndTrigger.jsx"))
    tell application "Adobe After Effects CS5.5"
      DoScriptFile scriptfile
    end tell
    ...the line report.open("r") just returns empty.
    Same goes when i place the jsx in the startup folder and just call the function RenderEnd () via applescript. It's as if the file open/read stuff does not work when using applescript.
    Does anybody have an idea about this or knows the reason for why this obviously wrong behaviour happens? Maybe someone knows a different approach of how to get feedback from a completed aerender process back into a UI script.

    Ok, i finally found the issue:
    Applescript apparently does not recognize file paths beginning with a drive designation:
    When i change the file path part of the report file from
    var report = new File ("Macintosh HD/Users/macname/generallog.txt");
    to simply
    var report = new File ("/Users/macname/generallog.txt");
    everything works as it should.
    It's still a bit weird and i don't understand this. Maybe someone can explain this to me, please?

  • WINE err:"wine cmd.exe /c echo '%ProgramFiles%' returned empty string"

    So as the tittle states WINE is throiwng this error:
    wine cmd.exe /c echo '%ProgramFiles%' returned empty string
    As for what might have caused it? probably the last system update which was performed a few days ago, my old prefix works fine but I have a habit of creating new prefixes for troublesome applications, or applications I am unsure of whether they will cause trouble or not.
    Hence I created a new prefix using:
    export WINEARCH=win32
    export WINEPREFIX=~/.problematic
    winecfg
    As for how wine is run, it's run as a normal, unprivileged, user.
    Oh and I also tried generating yet another prefix like this:
    $ WINEARCH=win32 WINEPREFIX=~/.problematic-new winetricks steam
    Executing w_do_call steam
    wine cmd.exe /c echo '%ProgramFiles%' returned empty string
    Didn't work either.
    I'm at loss, any suggestion on how to fix it?
    Last edited by CubeGod (2014-06-29 15:48:05)

    $ WINEARCH=win32 WINEPREFIX=~/testprefix notepad.exe
    bash: notepad.exe: command not found
    So obviously I need to correct the command
    $ WINEARCH=win32 WINEPREFIX=~/testprefix wine notepad.exe
    wine: created the configuration directory '/home/shiina/testprefix'
    err:module:load_builtin_dll failed to load .so lib for builtin L"winemp3.acm": libmpg123.so.0: cannot open shared object file: No such file or directory
    fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
    err:mscoree:LoadLibraryShim error reading registry key for installroot
    err:mscoree:LoadLibraryShim error reading registry key for installroot
    err:mscoree:LoadLibraryShim error reading registry key for installroot
    err:mscoree:LoadLibraryShim error reading registry key for installroot
    fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
    fixme:iphlpapi:NotifyAddrChange (Handle 0xece880, overlapped 0xece88c): stub
    wine: configuration in '/home/shiina/testprefix' has been updated.
    Wine cannot find the ncurses library (libncursesw.so.5).
    why is ncurses a dependency anyway? besides, wicd-curses works so this shouldn't be the case.
    Anyway, trying winetricks in the same prefix
    $ WINEARCH=win32 WINEPREFIX=~/testprefix winetricks steam
    Executing w_do_call steam
    wine cmd.exe /c echo '%ProgramFiles%' returned empty string
    Anyway, I expected notepad to work since it resides in %WINDOWS% not %ProgramFiles%
    Is there any registry key I can set for this? all my google searching says this can cause with a mismatch of wine versions but why would that happen?
    Either way checking wine --version outputs wine-1.7.20 which is the same as it was pre-update (when it still worked).

  • If I want to create an empty PDF file how much disk space does it require?

    I want to creat empty PDF document of A4 size. How much disk space does it require ?
    Please let me know.

    I think I would have just tried, and probably already have my answer...

  • Getserver cookie - returns empty page

    Hi,
    I am using MVC,
    I have firstpage - a controller for that and a model class.
    I have second page - a controller for that and the model is the same as the first one.
    I am using a single model class but multiple controllers and multiple views. I am trying to use server cookies to set and get attributes between the pages.
    First Page - I have 2 attributes - on Do_init - I instantiate Model. Do_request - loads the firstpage. Do_handle-data - once the data is entered in firstpage, gets it from form fields and loads it into cookie.
    Do_handle_event - gets the values from the cookie and processes it and makes a table to be passed to the seconf page. I loaded this table in the cookie and - call second.do
    Second page - in controller  - DOInit - i have again instantiated Model - in Dorequest - I try to read from the cookie for the table data...But I am getting an empty page. I debugged it and in the Do request - where I call the get_server_cookie - nothing happens, just returns empty page...
    Does anyone know why?? can I not access the cookie by name in more than once controllers??
    Is this a right way of navigating between pages?? I want all the objects in the pages accessible across all the pages...should be able to read and write as per events...please suggest...
    Thanks
    Thilothama

    Hi,
         Put that cookie in the navigation->set_parameter and paas it to the next page in the page attributes as an 'AUTO'.
              Hope this may help you.
    Jyoti

  • On CMC Home Authentication page returns empty

    On CMC Home > Authentication page returns empty and after some time returns the following error:
    The maximum amount of time for a script to execute was exceeded. You can change this limit by specifying a new value for the property Server.ScriptTimeout.
    line: 1373

    Thanks Sebastian. I did not find anything related to Server.ScriptTimeout.
    Just wanted to add that the 'Windows AD' tab is getting this error. Additionally, when I go to Home > All Users and select on any User, I get the following error:
      Retrieve Error
    There was an error while retrieving data from the server: Active Directory Authentication failed to get the Active Directory groups for the account with ID "....". Please make sure this account is valid and belongs to an accessible domain.

  • LicenseServer property in Company object alway return empty string

    Hi everyone,
    When I use Company object and LicenseServer property to get LicenseServer, both in SBO 2004 & SBO 2005 all return empty string, who can help me get the correct LicenseServer name.
    Thanks in advance.
    Kathy

    Jose Xabier,
    Thanks for your reply, actually I need the License server name, but in SLIC table it saves Local hotost and port number some times like below:
    [localhost:30000]
    who knows how to get the name instead of Localhost,
    why licenseserver return empty sting? doI need set other property to get license server name for company object?
    Thanks,
    Kathy

Maybe you are looking for