Add-on Identifier

Hi,
I have approx. 9999 SDK Tools License showing in my SAP B1.
But when I generate a key of Add-on Identifier it shows message no license.
Is it mean I have to purchase another license to develop my own add-on.
or I can still self generated forms in SAP by some other method by executing
the complied file generated from .net
Thank you for your time!
Umer Nasim.

Hi Umer,
You don't actually need to use the Addon Identifier at all. There is a license called the Compatibility license when is always included in any SBO installation (and which is a global license and not user specific). If you do not set an Addon Identifier in the code of your addon then your addon will automatically use the Compatibility license.
A few years back, SAP were going to discontinue the Compatibility license and everyone would have had to use the Addon Identifier instead. However, SAP changed their minds and extended the Compatibility license.
Kind Regards,
Owen
P.S. To develop any addon using the DI API you have to have bought the SDK developer license from SAP.

Similar Messages

  • How do I add an 'identified developer' to my preferences so i can accept their app?

    How do I add an 'identified developer' to my preferences so i can accept their app?

    madhuri3 wrote:
    ... I'd rather go down the 'open installer' route, but I can't find the option.
    I'd downloaded the app, but when I tried to use it I got the message that it couldn't be opened because it was from an unidentified developer (not chosen on my security preferences...I'm super-cautious). I don't see a clickable 'installer' choice.
    Right click on it, select Open,

  • We each have our own device, a laptop and an iPad.  when sending imessages recipients cannot tell which of us sent it other than looking at the content.  Is there any way to add an identifier to make it clear who is sending the message?

    We each have our own device, a laptop and an iPad.  when sending imessages recipients cannot tell which of us sent it other than looking at the content.  Is there any way to add an identifier to make it clear who is sending the message?  I know we can say 'this is mom or this is dad" but when an email is sent it identifies the device that sent it so why not imessages too? 

    Stop using the same apple id on all your devices. Each person should have their own. You can still share apps via home sharing.

  • Problem in testing UI add-on after login method changes

    Dear All Experts/Gurus,
    I have changed login method to a new one of a UI Add-on (because I just have SDK implementation version license). Using add-on identifier generator, I generate the add-on identifier string and put on the source code :
    Public Sub GetApplication()
        Set oSboGuiApi = New SAPbouiCOM.SboGuiApi
        oSboGuiApi.Connect Command
        oSboGuiApi.AddonIdentifier = "4CC8B8ACE0273A61489738C94047855DE8768CDD37F64D4F11E82759A542BD545D5A6E4D50A39B9E9FB20FA944FF35C5B60FE779"
        Set SboApplication = oSboGuiApi.GetApplication
    End Sub
    After recompile it, I want to prove it by sending it to other friend's (work mate) PC/notebook with different license and hardware key. The error message when installing/starting the add-on is :
    Runtime error '-7200 (ffffe3e0)':
    Connection - Connection string doesn't match UI development work mode.
    If the error happened, I just guessed that the login method change is success. I also read the SAP new license mechanism states that if the add-on is developed using SDK implementation version, it will only be able to install/use in the customer network PC and so on, ....etc.
    The problem is that I am not fully sure if my guess is correct. I want to conduct some testing. I tried to request new temprary license with compatibility license is over within 2 days, but unsuccessful. Would you please to tell me if there is another way to prove/test that  the add-on will be able to start after the compatibility license for add-on expires ?
    I appreciate your answer so much. TIA
    Rgds,

    Hi Steve,
    The AddOnIdentifier you obtain by selecting Development or Implementation options while creating the AddOnIdentifier depends on the license manager.
    If you change the license manager to another machine or someone connected to a different license manager try to run your code you it will not work.
    It is quite clear in the <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/13d67f3c-0e01-0010-eba2-cab13a5979c2">License Guide</a>:
    <b>Development License</b>
    This license is required for partners developing add-ons and the only license allowing distribution. <i><u>In Development license, the license key is shared by all developers connected to the same License Service</u></i>. The License Service allocates licenses on the basis of first-come, first-served.
    <b>Implementation License</b>
    This license is required for customers intending to develop small modifications or add-ons for their own use using only the UI API.
    <i><u>Add-ons developed under the Implementation license cannot run with a different License Service other than the one that was used for their development</u></i>. The Implementation license does not allow
    distribution to third-parties.
    Regards
    Trinidad

  • Excel Macro to click on publish button of Master Data Services Add-in

    I am creating an excel macro to perform extra validation and defaults whilst the user is editing the MDS entity. It will be added as a workbook add-in. At the end of the macro I would like to be able to launch publish. The MDS addin is a ribbon.
    Does anyone have an example of how I can simulate a click on the Publish button or what the call that the button does is?
    David Roseneder

    Hi David
    here is a code sample to add mds actions with excel Buttons
    you can find the connection class separately, by downloading my sample project (C#) on codeplex :
    http://mdsmanager.codeplex.com
    (I use this MDS connection class for many projects)
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Xml.Linq;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    using Excel = Microsoft.Office.Interop.Excel;
    using Office = Microsoft.Office.Core;
    using System.Xml;
    using System.Collections.ObjectModel;
    using Common.ServiceReference1;
    namespace ExcelToMDS
    public partial class Sheet1
    public const string mdsEndPoint = "http://yourMDSEndpointUrl:4040/Service/Service.svc";
    ServiceClient c = null;
    International intl = new International();
    OperationResult or = new OperationResult();
    Metadata md = null;
    private void Sheet1_Startup(object sender, System.EventArgs e)
    using (var c = Common.MDS_WSConnect.CreateMdsProxy("yourdomain", "yourlogin", "yourpassword", mdsEndPoint))
    c.Open();
    International intl = new International();
    OperationResult or = new OperationResult();
    md = GetMetaData(intl, ref or);
    cbModels.Items.Clear();
    foreach (Model mo in md.Models)
    cbModels.Items.Add(mo.Identifier);
    cbModels.DisplayMember = "Name";
    cbEntities.Visible = true;
    private Metadata GetMetaData(International intl, ref OperationResult or)
    MetadataResultOptions mro = new MetadataResultOptions();
    MetadataSearchCriteria msc = new MetadataSearchCriteria();
    msc.Models = new Collection<Identifier>() { new Identifier() };
    msc.Versions = new Collection<Identifier>() { new Identifier() };
    msc.SearchOption = SearchOption.UserDefinedObjectsOnly;
    mro.Models = ResultType.Identifiers;
    mro.Versions = ResultType.Identifiers;
    cbModels.Items.Clear();
    Metadata md = c.MetadataGet(intl, mro, msc, out or);
    return md;
    private void Sheet1_Shutdown(object sender, System.EventArgs e)
    if (c != null && c.State != System.ServiceModel.CommunicationState.Closed)
    c.Close();
    #region VSTO Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InternalStartup()
    this.btGetMDSData.Click += new System.EventHandler(this.btGetMDSData_Click);
    this.btGetTransactions.Click += new System.EventHandler(this.btGetTransactions_Click);
    this.btUpdateAttribute.Click += new System.EventHandler(this.btUpdateAttribute_Click);
    this.cbModels.SelectedIndexChanged += new System.EventHandler(this.cbModels_SelectedIndexChanged);
    this.cbMembers.SelectedIndexChanged += new System.EventHandler(this.cbMembers_SelectedIndexChanged);
    this.cbEntities.SelectedIndexChanged += new System.EventHandler(this.cbEntities_SelectedIndexChanged);
    this.cbVersions.SelectedIndexChanged += new System.EventHandler(this.cbVersions_SelectedIndexChanged);
    this.cbAttributes.SelectedIndexChanged += new System.EventHandler(this.cbAttributes_SelectedIndexChanged);
    this.btReverseTran.Click += new System.EventHandler(this.btReverseTran_Click);
    this.Shutdown += new System.EventHandler(this.Sheet1_Shutdown);
    this.Startup += new System.EventHandler(this.Sheet1_Startup);
    #endregion
    private void btGetMDSData_Click(object sender, EventArgs e)
    Cursor.Current = Cursors.WaitCursor;
    DisplayEntityMembers(c);
    Cursor.Current = Cursors.Default;
    private void DisplayEntityMembers(ServiceClient c)
    EntityMembers em = GetEntityMembers(c);
    if (em != null)
    Member[] members = em.Members.ToArray();
    ((Excel.Range)this.Cells[2, 2]).Value2 = "MemberName";
    ((Excel.Range)this.Cells[2, 3]).Value2 = "AttributeName";
    ((Excel.Range)this.Cells[2, 4]).Value2 = "AttributeValue";
    for (int i = 0; i < members.Length; i++)
    ((Excel.Range)this.Cells[i + 3, 2]).Value2 = members[i].MemberId.Name;
    int cptAtt = 0;
    foreach (Common.ServiceReference1.Attribute att in members[i].Attributes)
    ((Excel.Range)this.Cells[i + 3, cptAtt + 3]).Value2 = att.Identifier.Name.ToString();
    ((Excel.Range)this.Cells[i + 3, cptAtt + 4]).Value2 = att.Value != null ? att.Value.ToString() : "";
    cptAtt += members[i].Attributes.Count();
    private EntityMembers GetEntityMembers(ServiceClient c)
    if (cbModels.SelectedItem != null && cbEntities.SelectedItem != null && cbVersions.SelectedItem != null)
    EntityMembersGetCriteria emGetCrit = new EntityMembersGetCriteria();
    emGetCrit.ModelId = new Identifier() { Name = ((Identifier)cbModels.SelectedItem).Name };
    emGetCrit.EntityId = new Identifier() { Name = ((Identifier)cbEntities.SelectedItem).Name };
    emGetCrit.VersionId = new Identifier() { Name = ((Identifier)cbVersions.SelectedItem).Name };
    //ExportView[] ev = c.ExportViewListGet(new International(), out or);
    EntityMembersInformation emi = new EntityMembersInformation();
    emGetCrit.DisplayType = DisplayType.CodeName;
    EntityMembers em = c.EntityMembersGet(intl, emGetCrit, out emi, out or);
    return em;
    else
    MessageBox.Show("Please select model, version and entity in comboboxes");
    return null;
    private void btGetTransactions_Click(object sender, EventArgs e)
    if (cbModels.SelectedItem != null)
    this.Rows.Clear();
    using (var c = Common.MDS_WSConnect.CreateMdsProxy("yourdomain", "yourlogin", "yourpassword", mdsEndPoint))
    c.Open();
    DisplayTransactions(c);
    c.Close();
    else
    MessageBox.Show("Please select Model in combos");
    private void DisplayTransactions(ServiceClient c)
    string versionName = "VERSION_1";
    if (cbVersions.SelectedItem != null)
    versionName = ((Identifier)cbVersions.SelectedItem).Name;
    TransactionSearchCriteria trSrchCrit = new TransactionSearchCriteria();
    trSrchCrit.ModelId = new Identifier() { Name = ((Identifier)cbModels.SelectedItem).Name };
    //trSrchCrit.EntityId = new Identifier() { Name = ((Identifier)cbEntities.SelectedItem).Name };
    trSrchCrit.EntityId = new Identifier();
    trSrchCrit.VersionId = new Identifier() { Name = versionName };
    //ExportView[] ev = c.ExportViewListGet(new International(), out or);
    EntityMembersInformation emi = new EntityMembersInformation();
    int totalTranCount = 0;
    Collection<Transaction> transactions = new Collection<Transaction>();
    OperationResult or = c.TransactionsGet(intl, trSrchCrit, out totalTranCount, out transactions);
    int startY = 4;
    int startDataY = startY + 1;
    int startX = 4;
    ((Excel.Range)this.Cells[startY, startX]).Value2 = "TransactionID";
    ((Excel.Range)this.Cells[startY, startX + 1]).Value2 = "Code";
    ((Excel.Range)this.Cells[startY, startX + 2]).Value2 = "Name";
    ((Excel.Range)this.Cells[startY, startX + 3]).Value2 = "MemberType";
    ((Excel.Range)this.Cells[startY, startX + 4]).Value2 = "Date";
    ((Excel.Range)this.Cells[startY, startX + 5]).Value2 = "AttributeName";
    ((Excel.Range)this.Cells[startY, startX + 6]).Value2 = "PriorValue";
    ((Excel.Range)this.Cells[startY, startX + 7]).Value2 = "NewValue";
    for (int i = 0; i < transactions.Count(); i++)
    ((Excel.Range)this.Cells[i + startDataY, startX]).Value2 = transactions[i].Id.ToString();
    ((Excel.Range)this.Cells[i + startDataY, startX + 1]).Value2 = transactions[i].MemberId.Code;
    ((Excel.Range)this.Cells[i + startDataY, startX + 2]).Value2 = transactions[i].MemberId.Name;
    ((Excel.Range)this.Cells[i + startDataY, startX + 3]).Value2 = transactions[i].MemberId.MemberType.ToString();
    ((Excel.Range)this.Cells[i + startDataY, startX + 4]).Value2 = transactions[i].Date.ToString();
    ((Excel.Range)this.Cells[i + startDataY, startX + 5]).Value2 = transactions[i].AttributeId.Name;
    ((Excel.Range)this.Cells[i + startDataY, startX + 6]).Value2 = transactions[i].PriorValue;
    ((Excel.Range)this.Cells[i + startDataY, startX + 7]).Value2 = transactions[i].NewValue;
    private void btUpdateAttribute_Click(object sender, EventArgs e)
    Cursor.Current = Cursors.WaitCursor;
    using (var c = Common.MDS_WSConnect.CreateMdsProxy("yourdomain", "yourlogin", "yourpassword", mdsEndPoint))
    c.Open();
    EntityMembers em = GetEntityMembers(c);
    Member[] members = em.Members.ToArray();
    for (int i = 0; i < members.Length; i++)
    ((Excel.Range)this.Cells[i + 3, 2]).Value2 = members[i].MemberId.Name;
    foreach (Common.ServiceReference1.Attribute att in members[i].Attributes)
    if (att.Identifier.Name == "ValidDandT")
    att.Value = DateTime.Now;
    c.EntityMembersUpdate(intl, em);
    DisplayEntityMembers(c);
    c.Close();
    Cursor.Current = Cursors.Default;
    private void cbModels_SelectedIndexChanged(object sender, EventArgs e)
    Identifier i = (Identifier)cbModels.SelectedItem;
    if (md != null)
    cbVersions.Items.Clear();
    foreach (Common.ServiceReference1.Version v in md.Versions)
    if (v.Identifier.ModelId.Id == i.Id)
    cbVersions.Items.Add(v.Identifier);
    cbVersions.DisplayMember = "Name";
    private void cbVersions_SelectedIndexChanged(object sender, EventArgs e)
    Identifier iVer = (Identifier)cbVersions.SelectedItem;
    ModelMembersGetCriteria mmgc = new ModelMembersGetCriteria();
    mmgc.Models = new Collection<Identifier>() { new Identifier() { Name = ((Identifier)cbModels.SelectedItem).Name } };
    ModelMembersResultCriteria mmrc = new ModelMembersResultCriteria();
    mmgc.Versions = new Collection<Identifier>() { new Identifier() { Id = iVer.Id } };
    mmrc.IncludeLeafMembers = true;
    cbEntities.Items.Clear();
    cbMembers.Items.Clear();
    Collection<EntityMembers> colEm = c.ModelMembersGet(intl, mmgc, mmrc, out or);
    foreach (EntityMembers em in colEm)
    cbEntities.Items.Add(em.EntityId);
    cbEntities.DisplayMember = "Name";
    private void cbEntities_SelectedIndexChanged(object sender, EventArgs e)
    DisplayEntityAttributesCombo(c);
    DisplayEntityAttributesAndMembersInSheet();
    private void DisplayEntityAttributesAndMembersInSheet()
    EntityMembers em = GetEntityMembers(c);
    Member[] members = em.Members.ToArray();
    ((Excel.Range)this.Cells[2, 2]).Value2 = "MemberName";
    ((Excel.Range)this.Cells[2, 3]).Value2 = "AttributeName";
    ((Excel.Range)this.Cells[2, 4]).Value2 = "AttributeValue";
    if (members.Count() > 0)
    int ii = 0;
    //attributes name on header line
    foreach (Common.ServiceReference1.Attribute att in members[0].Attributes)
    ((Excel.Range)this.Cells[3, ii + 3]).Value2 = att.Identifier.Name.ToString();
    ii++;
    //members Data
    int cptnbAttributes = members[0].Attributes.Count();
    for (int i = 0; i < members.Length; i++)
    for (int j = 0; j < cptnbAttributes - 1; j++)
    ((Excel.Range)this.Cells[i + 4, j + 3]).Value2 = members[i].MemberId.MemberType;
    private void DisplayEntityAttributesCombo(ServiceClient c)
    EntityMembers em = GetEntityMembers(c);
    Member[] members = em.Members.ToArray();
    if (members.Count() > 0)
    cbAttributes.Items.Clear();
    foreach (Common.ServiceReference1.Attribute a in members[0].Attributes)
    cbAttributes.Items.Add(a.Identifier);
    cbAttributes.DisplayMember = "Name";
    cbAttributes.Visible = true;
    private void cbMembers_SelectedIndexChanged(object sender, EventArgs e)
    Identifier idMember = (Identifier)cbMembers.SelectedItem;
    EntityMembers em = GetEntityMembers(c);
    Member[] members = em.Members.ToArray();
    Member m = members.FirstOrDefault(p => p.MemberId.Id == idMember.Id);
    cbAttributes.Items.Clear();
    foreach (Common.ServiceReference1.Attribute att in m.Attributes)
    cbAttributes.Items.Add(att.Identifier);
    cbAttributes.DisplayMember = "Name";
    cbAttributes.Visible = true;
    private void cbAttributes_SelectedIndexChanged(object sender, EventArgs e)
    private void btReverseTran_Click(object sender, EventArgs e)
    using (var c = Common.MDS_WSConnect.CreateMdsProxy("yourdomain", "yourlogin", "yourpassword", mdsEndPoint))
    c.Open();
    UpdateTransaction(c);
    DisplayTransactions(c);
    c.Close();
    private void UpdateTransaction(ServiceClient c)
    string versionName = "VERSION_1";
    if (cbVersions.SelectedItem != null)
    versionName = ((Identifier)cbVersions.SelectedItem).Name;
    TransactionSearchCriteria trSrchCrit = new TransactionSearchCriteria();
    trSrchCrit.ModelId = new Identifier() { Name = ((Identifier)cbModels.SelectedItem).Name };
    //trSrchCrit.EntityId = new Identifier() { Name = ((Identifier)cbEntities.SelectedItem).Name };
    trSrchCrit.EntityId = new Identifier();
    trSrchCrit.VersionId = new Identifier() { Name = versionName };
    //ExportView[] ev = c.ExportViewListGet(new International(), out or);
    EntityMembersInformation emi = new EntityMembersInformation();
    int totalTranCount = 0;
    Collection<Transaction> transactions = new Collection<Transaction>();
    OperationResult or = c.TransactionsGet(intl, trSrchCrit, out totalTranCount, out transactions);
    Collection<ReplacementId> transactionReversed = new Collection<ReplacementId>();
    or = c.TransactionsReverse(intl, new Collection<int>() { transactions.First().Id }, out transactionReversed);
    Xavier Averbouch
    Microsoft Community Contributor
    Avanade , FRANCE
    If a post answers your question, please click "Mark As Answer" on that post and "Vote as Helpful".

  • Add on Development

    hi guys,
    I develop one add-on using VB.net.When I run the program from VB.net it works fine.
    But when I make add-on It give the Error.
    Error :- "Connection String does not match UI Development work mode"
    When I am trying to create identifier string from
    Administration->License->Add-on Identifier->development
    I faced following error.
    "License Error : 100000006 No License"
    can any one tell me the reason for this error?

    Connection string: if you are in dev mode i.e. if you are
    starting the add-on by yourself you need to connect with
    the connection string provided by SAP. Otherwise if you
    are in target mode and your add-on is started by B1 you
    will get a connection string as a parameter passed to
    your add-on exe.
    This is explained in the e-learning material and the same
    for the licensing. Have a look at it, it is available
    here on SDN.

  • SAP 8.8 Add-On Connection Timed Out....

    Hi Experts,
    I am new to SAP 8.8.I Created a Customized Add-On by using  B1DESetup_2.1 Specifically give for the SAP 8.8.  I Installed the AddOn in the Same PC(Machine) where i Developed the Customization. It Installs fine...But when i Start the Add-On it Showing Add-On Connection TimeOut Message...(But my Code Works fine with out the AddOn Identifier....)
    Thing that i need to Share....
    1) I Doesnt give any Add-On Identifier at the time of connecting with the UI....
    2) Do we need any Add-On Identifier in before connecting to the UI API....
    //SboGuiApi.AddonIdentifier = "";
    3) I need a claritiy that in the 2007B/2005B we created the Add-On but we doest added any Addon Identifier....at that time addon Works Fine...
    4) How can i Get the Add-On Identifier...(Should i need to get it from the SAP)
    5)Because of not Giving the Addon Identifier...did i getting the Add-On Connection Timed Out....while starting the Add-On...
    Thanks in Advance,
    MadhuSudhana Rao.G

    Hi,
    Please review the SAP Note 912572 which explains in what cases this error you reported occurs and how to solve the issue.
    Wish it helps you.
    Best regards,
    Lucy Shen

  • 2004 Registering Add On Connection Timed Out

    Hi I am having a bit of trouble getting an addon to register and load successfully in SBO 2004...
    I can get the Add On to Install properly, however when I load it, I get the error :
    Add-on connection timed out
    This occurs even though the add on has successfully loaded in the background and is running.  In the Add On Manager the status of the add on is set to Failed...
    I tried setting the AddonIdentifier string before connecting in my code using the Add-on Identifier Generator (Development and Implementation strings but these did not help)
    The Helloworld sample was a good help getting thus far, but even when try to install that as an add it disconnects straight away.
    Any help much appreciated!

    Hi Frank,
    I think the problem was the fact that I was hardcoding the connection string. After I changed it to accept it through the command arguments that the SAP application passes in it seems to connect fine - below is the procedure that I use to connect, I have left the commented lines in to show you how i was trying to connect.  I am still unsure as to when to use the AddonIdentifier property however.
    I have the add-on working 85% well now, but have posted again at SAP Business One SDK any input on this post would be very appreciated!
    Thanks,
    Daniel
              private bool SingleSignOn()
                   SAPbouiCOM.SboGuiApi objGui = new SAPbouiCOM.SboGuiApi();
                   objCompany = new SAPbobsCOM.Company();
                   string strCookie;
                   string strConnection;
                   long lngConnectResult;
                   try
                        //objGui.AddonIdentifier = "4CC8B8ACE0273A61489738C94047855DE8768CDD37F64D4F11E82759A542BD515D5A6E4F50A19B939FBB0FA844FA35C7B604E771";
                        //objGui.Connect("0030002C0030002C00530041005000420044005F00440061007400650076002C0050004C006F006D0056004900490056");
                        objGui.Connect(Environment.GetCommandLineArgs().GetValue(1).ToString());
                        objApplication = objGui.GetApplication(-1);
                        strCookie = objCompany.GetContextCookie();
                        strConnection = objApplication.Company.GetConnectionContext(strCookie);
                        if(objCompany.Connected)
                             objCompany.Disconnect();
                        lngConnectResult = objCompany.SetSboLoginContext(strConnection);
                        if(lngConnectResult != 0)
                             System.Windows.Forms.MessageBox.Show("Connection failed, make sure SAP Business One is running and you are logged into a Company");
                             return false;
                        lngConnectResult = objCompany.Connect();
                   catch
                        System.Windows.Forms.MessageBox.Show("Connection failed, make sure SAP Business One is running and you are logged into a Company");
                        return false;
                   return true;

  • How to create Add-On program for SAP Business One 2007

    Hi,
    When I create my Add-On into SBO I have some issues.
    Which program do I use to create an Add-On into SBO?
    Is there a URL or Path where I find the program?
    I am using a 2003 program which is built by my colleague.
    I assume SAP provide the Add-On program for SAP Business One 2007
    Thank you,
    Rune

    Rune,
    At a high level ...
    1) VS2005
    2) Compile your program
    3) Generate and Add-on Identifier
    4) Create a registration datafile
    5) Create the setup program consisting of your .EXE and the .ARD file
    6) Add-On is created and running in SBO
    Again ... the details on deploying and packaging your add-on can be found in the SAP Business One SDK Help Center Documentation and the SDK eLearning.
    Also, you can use B1DE using the Simple Installer or Professional Installer will do most of the work for you after you have coded the add-on.
    Eddy
    Edited by: Edward Neveux on Jan 30, 2008 9:11 PM

  • Add on devlopment

    Hi Experts,
    I am totally new to SDK development nd VB.NET. I am just going thru the sample code, but unable to get n idea of how to completely build one solution in VB.NET Visual studio. Please advice

    Thank you for replying...
    Now I am trying to run this like...
    I have a structure like below
    Solution 'joi' (1 project)
    joi
    My Project
    joiclass.vb
    joimodule.vb
    in joiclass.vb I hve written
    Public Class joiclass
        Dim oCompany As SAPbobsCOM.Company
        Dim lRetCode, lErrCode As Long
        Dim sErrMsg As String
        'Instanciate a Company object
    oCompany      = New SAPBobsCOM.Company
    oCompany.Server      = "server name"     
    oCompany.CompanyDB      = "SBODemoIN"
    oCompany.UserName      = "manager"
    oCompany.Password      = "manager"
    oCompany.Language      = ln_English
        'Sample: E.g.use Windows Auth.(MSSQL only)
    oCompany.UseTrusted     = True
        'Set AddOn identifier u2013 a long string with numbers; identifies
        'your Add-On against License Service u2026 optional!
        'oCompany.AddOnIdentifier  = u201Cfill in your Add-On Identifier hereu201D
    lRetCode = oCompany.Connect()
        'Check Return Code
    If lRetCode <> 0 Then
      oCompany.GetLastError(lErrCode, sErrMsg)
    End If
    End Class
    in joimodule.vb
    Module joimodule
        Public Sub main()
            Dim otest As New joiclass
            System.Windows.Forms.Application.Run()
        End Sub
    End Module
    And i have added reference and connection pro tc etc...
    When i am doing start debuggin joiclass.vb
    Visual Studio cannot start debugging because the debug target 'D:\VB Projects\joi\joi\Debug\joi.exe is missing. Please build the project and retry, or set the OutputPath and AsemblyName properties appropriately to point at the correct location for the target assembly

  • Version 2005  - any experiences deploying add-ons?

    I am trying to steal some experiences with any who have had deployed AddOns (UI/DI) on 2005.
    I have tried the  Add-On I did with 2004 and it loaded ok, but i still need to give it a good test.
    We Hold only the 2004 developer version of SDK, will I need a 2005 Developer version to do deployments on the SBO 2005 Ramp-Up ?
    SAP support line does not yet support 2005 since the full version is not out yet..
    I need to get as much tips as possible.
    Thanks,
    Indika.

    Thanks for this reply Trinidad.
    However when I made my request for a development version of 2005 SDK from the local (australian) SAP office, what they had to say was ,
    all I need to deploy was the SDK that is supplied with the SAP 2005 CD and if needed install DI at client site.
    I however suspect they got misinformed.
    can you let me know what diffrences between the SDK version imstalled with the SAP CD and the development version are? what are the diffrences with the add-on compiled with these two?
    So I can put my request with subtance to the SAP local office,( but having no experience with installation cannot do that.)
    my add-on uses UI and DI, and references
    SAPbobsCOM2005.dll and SAPbouiCOM.exe
    on the other hand I installed the add-on on the SAP 2005 and run it without a add-on identifier ... as said in documentation it did cause no problems.
    Regards,
    Indika.

  • Missing workflow app identifier in Site App Permissions

    Hi everyone,
    I´m wondering if anyone can help me with this issue: I can´t get the Workflow app identifier to appear (again) in Site App Permissions. I was having some trouble with workflow permissions after changes in our SharePoint environment and decied to
    delete the Workflow app permissions and de-activate the "Workflows can use app permissions", and re-activate to hopefully get things working again...
    Issue:
    However, when I activate the feature (again), the App identifier does not appear in the "Site App Permission".
    Can anyone tell me how to acivate/add this identifier other than with activating the site feature?
    -Why SharePoint, why?-

    Hi,
    For your issue, Try to do the steps below:
    Navigate to _layouts/15/appinv.aspx i.e. grant permission to app page.
    Type app identifier and click Lookup, it will generate Title.
    Type App Domain such as contosoapps.domain.
    Type the following to App's Permission Request XML.
    Click Create, it will pop up SharePoint app, and click Trust it.
    <AppPermissionRequests>
    <AppPermissionRequest
    Scope="http://sharepoint/content/sitecollection"
    Right="FullControl" />
    </AppPermissionRequests>
    Besides, App permissions in SharePoint 2013, refer to it:
    http://msdn.microsoft.com/en-us/library/jj822159.aspx
     http://msdn.microsoft.com/en-us/library/office/fp142383(v=office.15).aspx
    Best Regards,
    Lisa Chen
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Lisa Chen
    TechNet Community Support

  • Licence error: 100000006 No Licence  (addon identifier generator - dev )

    before popping this to SAP as a support question I thought of using the forum,
    we have the Developer version of SDK and I have it installed on the PC.
    I tried (for the first time) to create the Add On Identifier for the use of my new add-on I am writing.
    as this is not a real issue yet, I understand that after end of this year I need an add-on identifier, so I was planning to set the addon identifier property with the generated string.)
    Administration | License | Add-on identifier generator
    then selected "Development" and cliked "Generate" only to get the error below.
    "Licence error: 100000006 No License"
    what is the problem?
    I have upgraded SAP a few times with patches available since the install of the Developer SDK, and I upgraded the SDK that came with them as well, could this have done something to my SDK? If that is so, how do I obtain Developer SDK upgraes?
    I tried uninstalling the SDK and re-installing with same result.
    Thanks in advance,
    Indika.
    Message was edited by: Indika Dekumpitiya

    Hi Indika,
    To know if you have the development license you should have a look to the Administration -> License -> LicenseAdministration menu and then go to the Components folder. There you should have a "Software Development Kit - Development Version" line with the numbers of licenses you have and the start/expiration date. You can also have a look to your license.txt file.
    If everything is ok regarding your development license, I think it s if you were able to develop and test your addon using DI and UI API, then you must create a message into SAP support.
    Regards
    Trinidad.

  • More than one add-on

    In 2004A, was anybody able to run more than one add-on at a time without setting each add-on identifier?
    Do we have to pay to get a development license key name for each add-ons we develop?
    Thanks
    Regards

    Hi Enrico,
    Yes we can run multiple add-ons at a time, without setting the add-on identifier. These add-ons will run until December 31 2005, after this date the add-ons must have an add-on identifier to run, this is stated in one of the SDK help files.
    Regards, Lita

  • Reg: Solution Identifier generator & License Manager

    Hi Friends,
    Can anybody tell me what is the exact use of
    1. Solution Identify
    2. How can I implement Lincese manager service through SDK.
    3. How to add our own license manager service in SAP Service manager. It contains some services like backup service, license manager , event manager etc...
    Thanks & Regards
    Manish

    Hi Manish,
    I'll try to give you a general explanation but for more detail I would say you can contact your local SAP field organisation and there should be someone there who can help you.
    1: The solution identifier is used so that you can code an add-on identifier into your add-on. Any user trying to use this add-on will need to have requested a license off the service marketplace to use it.
    e.g.
    - you apply for a BASIS License for your add-on
    - you then use this BASIS license to generate an add-on identifier in Business One
    - Then you code this add-on identifier into your add-on
    - If a user wants to use this add-on, they must add the BASIS license to their license file when requesting it from the service marketplace
    2: As above. You request a BASIS license, generate an add-on identifier and code this into your add-on.
    3: I don't know of a way to add your own service to the SAP server tools, I do not think it is possible. You can implement your own standalone license service, but it would be more straightforward to implement the SAP BASIS model.
    Hope this helps clarify things,
    Regards,
    Niall

Maybe you are looking for

  • Running a tv as a second monitor

    Hello all, Just a quick question, I've just bought a dual 2.7Ghz G5 with the standard graphics card (everymac says its the Radeon 9650) and was just wondering if I could hook a HD TV to it to act as a second monitor. Its a little decadent I know, but

  • Need help in creating Buttons in ADF10g

    Hi, My questions are: 1. Is it possible to modify the width of row in ADF10g. Because the width of rows in my output are high. So I want to reduce it. 2. I need help in creating a new 'createbutton' to create a newlist for the table . for this I have

  • HT201084 can it be a  debit card for family share?

    I cant activate my kids id. I have a debit card on file. will this not work?

  • Changes to ESS not deployed

    Hi everybody, we have setup a track for modifying the ESS aplication deliverd by SAP (as described in the coockbook). But when building and deploying the central deploy log says: deployment of E:\usr\sap\DI1\SYS\global\TCS\DEPLOYARCHIVES/200807011529

  • Coding problem in a user exit for unit conversion please see it once

    Hi experts,                i am having a problem in coding i wont to convert the MSEG-ERFME field that is quantity field into tonne when ever it is kg. In tcode j1i5 i got one user exit J_1i7_userexit_validate now inside this user exit i have to writ