Ejemplo n.º 1
0
            public static void StfcConnection(RfcServerContext serverContext, IRfcFunction function)
            {
                MethodBase method   = MethodInfo.GetCurrentMethod();
                String     requtext = function.GetString("REQUTEXT");

                Console.WriteLine();
                Console.WriteLine("Method {2}.{0} processing RFC call {1}", method.Name, function.Metadata.Name, method.DeclaringType.ToString());
                Console.WriteLine("System Attributes:");
                Console.WriteLine(AttributesToString(serverContext.SystemAttributes));
                Console.WriteLine("Received REQUTEXT: {0}", requtext);

                // This class is also used in our tRFC & bgRFC Server examples, so let's do some more stuff here to make this more interesting...

                if (serverContext.InTransaction)
                {
                    bool bgRFC = false;
                    if (serverContext.TransactionID != null)                       // It's a tRFC/qRFC.
                    {
                        Console.WriteLine("Currently running in tRFC LUW {0}", serverContext.TransactionID.TID);
                    }
                    else                       // It's a bgRFC.
                    {
                        Console.WriteLine("Currently running in bgRFC LUW {0}", serverContext.UnitID.Uuid.ToString("N").ToUpper());
                        bgRFC = true;
                    }
                    if (requtext.Equals("Aborts"))
                    {
                        Console.WriteLine("Let's abort this LUW with an error...");
                        String errorMessage = "Not in the mood for t/q/bgRFC. Try again later...";
                        if (bgRFC)
                        {
                            MyUnitIDHandler.SetError(serverContext.UnitID, errorMessage);
                        }
                        else
                        {
                            MyTidHandler.SetError(serverContext.TransactionID, errorMessage);
                        }
                        throw new RfcAbapRuntimeException(errorMessage);
                    }
                }
                else                   // In this case we can send return parameters.
                {
                    function.SetValue("ECHOTEXT", function.GetString("REQUTEXT"));
                    function.SetValue("RESPTEXT", "NCO3: Hello world.");
                }
            }
Ejemplo n.º 2
0
 public static void ExampleShowBgRfcs()
 {
     MyUnitIDHandler.ListLUWs();
 }