Warning: Deprecated articles
You are using the old version of the knowledge base for ERPConnect.
Make sure to use the samples within the new HelpCenter for ERPConnect.

This sample shows how to create a Functional Location in SAP using the BAPI BAPI_FUNCLOC_CREATE.

About #

The Functional Location (External Number) must match the structure defined in the exporting parameter STRIND of BAPI_FUNCLOC_CREATE. You can export the default value for the superior functional location under data_specific - SUPFLOC.

Tipp: To change a Functional Location replace the function module “BAPI_FUNCLOC_CREATE” with the function module “BAPI_FUNCLOC_CHANGE”.

Call BAPI_FUNCLOC_CREATE #

The following sample code calls the BAPI BAPI_FUNCLOC_CREATE to create a Functional Location in SAP:

using System;
using ERPConnect;

// Set your ERPConnect license
LIC.SetLic("xxxx");

using var connection = new R3Connection(
    host: "server.acme.org",
    systemNumber: 00,
    userName: "user",
    password: "passwd",
    language: "EN",
    client: "001")
{
    Protocol = ClientProtocol.NWRFC,
};

connection.Open();

RFCFunction func = connection.CreateFunction("BAPI_FUNCLOC_CREATE");
RFCStructure data_specific = func.Exports["DATA_SPECIFIC"].ToStructure();
  
	data_specific["STRIND"] = "A"; //StrIndicator
	data_specific["CATEGORY"] = "M"; //Category
	data_specific["SUPFLOC"] = ""; //Superior Function Location
  
RFCStructure data_general = func.Exports["DATA_GENERAL"].ToStructure();
  
    data_general["DESCRIPT"] = "My New Location2"; //Description
    data_general["MAINTPLANT"] = "1000"; //Mainplant        
  
func.Exports["LABELING_SYSTEM"].ParamValue = "A"; //Labeling System
func.Exports["EXTERNAL_NUMBER"].ParamValue = "1111-111-AA-15";  //Functional Location
  
func.Execute();
  
RFCFunction funcCommit = connection.CreateFunction("BAPI_TRANSACTION_COMMIT");
  
funcCommit.Exports["WAIT"].ParamValue  = "X"; 
funcCommit.Execute();
  
 // ReturnMessage from BAPI
RFCStructure funcRet = func.Imports["RETURN"].ToStructure();
//strmessage = funcRet["MESSAGE"].ToString();
  
Console.WriteLine (funcRet["MESSAGE"].ToString());
Console.WriteLine ("Please press a Key to continue")
  
Console.ReadLine();