IDOC time stamp

Hi gurus,
Please help.
How to determine the time when IDOC was sent to SAP?
Is there a standard logging of this?
thank you.

Hi,
Serialization is the process of sequencing your idocs, especially in the case of interdependant message types wherein it is mandatory that the message types follow a particular order and the IDocs would be generated in the same order. BD44 is used for maintaining the order for eg in the case of Material Master, the order is as follows: CLFMAS,MATMAS,MATQM. Due to the dependancy maintained between these message types, the errors occuring for each of the message type are also dependant on each other.
~Krithika

Similar Messages

  • IDOC number should be passed with Time stamp

    Here the scenario is IDOC to File.
    Currently I am getting the date and time stamp but I want to pass the IDOC number after the torr_asn_20080522-010137-257.txt
    torr_asn_?_20080522-010137-257.txt
    Here in place of question mark I want to pass the IDOC number and how to pass
    Let me know quickly as the issue is very urgent.
    Points will be awarded.

    Hi Arjya,
    If your requirement is to create , the file name dynamically for your receiver file adapter, you can do so using your FILE ADAPTER CONFIGURATION itself, and need not go for any JAVA Mappping / Java Code at all.
    *The dynamic filename generation concept is as follows.8
    In your filename field in the receiver file adapter, just give a variable with % symbols. (eg: %file% ).
    Now, under the option Variable Name Substitution, you can give how the value has to be created.
    It can be your interface name, sender service name, etc or it can be some value dynamically from your payload.
    For the former, your give
    message:interface_name ,etc
    and for the payload part you give,
    Payload: "your element root which u wanna acecss"
    Just check this link out,
    http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/content.htm
    And read the contents under variable substitution and it will help you understand the concepts better.
    Also, in your FILE Adapter under the option FILE CREATION MODE, you have options like,
    1.Add Counter,
    2. Append
    3. Create
    4. Add Time Stamp
    Reward points if this helps
    Regards
    Pragathi.

  • Idoc serialization by Time Stamp

    Hi,
    I have a need to use Idoc serialization by Date and Time, but from what I noticed the existing program 'RBDAPP01' will automatically turn on serialization by date and time stamp once the field EDIDC-SERIALIZATION is used.My understanding on serialization by Date and Time is as follows:
    Once the Serialization object is defined for a unique key (By defining Serialization in 'BD95' and 'BD57'), the function 'IDOC_SERIALIZATION_CHECK' is called in inbound function module for the idoc to see if there is already a record processed for the same key (via table BDSER), and if it is then any Idoc with a time stamp less than the one in BDSER comes for processing it gets an error.
    Now my questions is what is the purpose of defining the configuration for Serialization by going to 'BD95' and 'BD57' when RBDAPP01 is already doing the same?
    Also please correct me if I there is any flaw in my understanding.
    Thanks in advance.

    Hi,
    Based on what I understood from some SAP documentations (I am not 100% sure though), RBDAPP01 talks about IDoc serialization & the other transactions talks about ALE Serialization. Both are different as I understood from SAP documentation. And ALE serialization is used when you try to send a set of data. LIke material master, classification data. And you can link/serialize these different message types to make sure first material master idoc is processed & after that classificaiton idoc. And IDoc serialization is used to make sure the idocs (same message type) are processed in the same order by using field EDIDC-SERIAL. Something like date/time stamp can be used for this.
    Regards,
    Gokul

  • Date time stamp to be converted into only date

    Hi Experts,
    when i am using substirng functoin for converting datetimestamp to date it is giving the following error
    i am using RNIF pip to be converted into IDOC ORDERS 05
    the time stamp value from pip should modified in that so that i can get only the date
    by elemiting the time asscioated with it so i used substring functoin it is giving following error
      /ORDERS05/IDOC/E1EDK02/DATUM. The message is: Exception:[java.lang.StringIndexOutOfBoundsException: String index out of range: 8] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@107c499] com.sap.aii.mappingtool.tf3.MessageMappingException: Runtime exception during processing target field mapping /ORDERS05/IDOC/E1EDK02/DATUM. The message is: Exception:[java.lang.StringIndexOutOfBoundsException: String index out of range: 8] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@107c499] at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:347) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Root Cause: com.sap.aii.utilxi.misc.api.BaseRuntimeException: Exception:[java.lang.StringIndexOutOfBoundsException: String index out of range: 8] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@107c499] at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:56) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:291) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Root Cause: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:47) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:291) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 8 at java.lang.String.substring(String.java:1441) at com.sap.aii.mappingtool.flib3.TextFunctions.substring(TextFunctions.java:33) ... 26 more RuntimeException in Message-Mapping transformation: Runtime exception during processing target field mapping /ORDERS05/IDOC/E1EDK02/DATUM. The message is: Exception:[java.lang.StringIndexOutOfBoundsException: String index out of range: 8] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@107c499]
    thanks
    sunil

    Hi,
    Do as follows.
    Use standard date transformation function.In that format of source date give as hh:mm:ss ddMMyyyy and format of targeet date as you wish..It wil solve.
    Please award marks if found useful.
    Thanks
    Hamja

  • Appending and add time stamp at a time........

    Hi all,
    i am working on a scenario...
    it is file based..no mapping and bpm can be used.
    I need to pick up file through xi and append it and put in the target with time stamp to it.
    we can achieve this if mapping or bpm is allowed.....
    But,in file processing we can use only one option at a time.....
    I found a way:
    scenario one: files will be appened and kept in a temparory folder
    using another scenario we will pick up the appeneded file and add time stamp and keep in target structure...
    but i dont think this is advisable...
    please suggest me any other ways to achieve this...(can run operating system command be helpfull??)
    thanks in advance..
    Regards,
    Kiran.

    HI,
    Yes you are right, Appending and adding Time Stamp will not be possible simultaneously.
    Refer - this could help you
    Dynamic Filename with TimeStamp  
    Dynamic Filename with TimeStamp
    /people/william.li/blog/2006/04/18/dynamic-configuration-of-some-communication-channel-parameters-using-message-mapping
    But some how you have to use mapping for it. Then if its allowed to use the mapping then as you have suggested, should have to go for two scenarios. No alternative,
    Probably also you can try with Customized Adapter Module for this.
    Thanks
    swarup

  • Changing time stamp format in the file receiver adapter file name

    Hi all,
    How can we change the standard date time stamp from
    filename_yyyymmdd-hhmmss-mil
    to
    filename_yymmdd_hhmmss
    i.e.,  I want "underscores" instead of "hyphens" and also I do not want the MilliSeconds.
    I read in the forums that I have to use the combination of variable substitution and mapping functions to do this, but not sure how exactly.
    Can the experts help me with this please?
    Many thanks.

    Hello Ramesh,
         You can make this possible using runtime filename creation using UDF.
    Please go though the below steps.
    Message mapping:  
    Create an UDF and include the piece of code that captures the Filename and Timestamp from source side via ASMA.
    Modify them according to our requirement by adding the <Timestamp> at the end of <filename> with _.
    Map the UDF to any of the top level node so that the modified filename will be available for the target communication channel
    UDF Code is:
    try {
    String filename    = "";
    String timestamp = "";
    DynamicConfiguration conf1 = (DynamicConfiguration) container
        .getTransformationParameters()
        .get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create( "http:/"+"/sap.com/xi/XI/System/File","FileName");
    DynamicConfigurationKey key2 = DynamicConfigurationKey.create( "http:/"+"/sap.com/xi/XI/System/File","SourceFileTimestamp");
    filename = conf1.get(key1);
    timestamp = conf1.get(key2);
    filename = filenametimestamp".xml";
    filename = filename.replaceAll( "-" ,"_" );
    conf1.put(key1,filename);
    return filename;
    catch(Exception e)
         String exception = e.toString();
          return exception;
    Click on Advanced tab and check the Option u201CSetAdapterSpecificMessageAttributesu201D in addition to that check the attribute that are required to be captured during run time. In our case File Name and Source File Time Stamp are required to be checked
    In the receiver communication channel Mention u2018 * u2018as File Name Scheme.
    Click on Advanced tab and check the Option u201CSetAdapterSpecificMessageAttributesu201D in addition to that check the attribute u201CFile Nameu201D which will carry the modified value in the UDF .
    i hope this will help you.
    Monica

  • VOICE MEMOS and Wrong Time Stamps in Itunes

    I've noticed that my voice memos in the new iTunes 11.1.3 (8) have incorrect time stamps all over them now. This is a real problem for me, since I need the dates that the messages were recorded. I just tested this out by recording a new one today (2/11/14) on my new Iphone 5s. It showed up dated 8/13/12 2:13pm. My phone has the correct date on it, so what gives?
    Any solutions out there?
    Not to mention the fact that there are NUMEROUS DUPLICATES of previous memos that have become weird artifacts in my iTunes library each time I've backed up my materials. AND the new iTunes setup makes it incredibly hard to *actually remove data* from my system. I am concerned my private material is no longer private, but being archived elsewhere for meta-data purposes.
    C'mon, Apple. You're really slipping.

    I see all timezones, have you tried setting the time/date manually? I'd do than, then pop an email to support.
    Norwegian and a BB/PB user. Read what I mean, not what I spell.

  • Jabber Voicemail Incorrect Time Stamp

    I just noticed the the time stamp on my voicemails in Jabber v9.0.1 Build 12296 have the incorrect time stamp. They are all one hour behind. I confirmed that this does not happen in any of the following:
    Jabber v9.0.5
    CUPC v8.6
    Jabber for Mac v8.6.1
    Is this happening to anyone else?

    did you get this sorted out?  Im having the same problem with Jabber v9.1.5, CUC 9.1.2 and cucm 9.1.2.  Both cuc and cucm use the same NTP time source.  Time looks fine on the handsets and from the cli..

  • Transfer time stamp from text file into MS Access thru Labview

    Hello everyone,
    I am Cruz; Long time listener, First time caller.
    I am currently monotoring data being collected by an oven. The data is stored in a text file. I am using Labview to take the data from the textfile and place it in an MS access DB for manipulation. The first three columns of the text file are the time stamp of data. When i transfer the data into Access i cant get the first three columns to display as a time stamp. Can have some pointers on what how to get the first three columns to display correctly.
    Additional info:
    the text file is a 1D array that gets overitten with every new mesurement tanken. the transfer to Acces is to not loos any of the information and to better manipulate the data into forms and such.
    Running Labview 2010
    attached is code and text file.
    Any help is greatly appreciated.
    Attachments:
    Oven test other.vi ‏16 KB
    datalog032010003.txt ‏1 KB

    Your first mistake is reading the file as DBL. Your first three columns are obviously not numeric values. Did you ever look at the output array? Read it as strings. Second, you would need to combine those first three columns to create an actual time stamp before you write to the db. Unless of course you have one column for date, one column for time, and one column for AM/PM. I would not recomend that type of structure in the db.

  • Bug report: Time stamp misalignment in recent list

    Bug report: With the new compact design, go to recent pivot, tap on a conversation, press back button to go back to recent, notice the time stamps to the right of the list have moved even more right, with text being cut off the screen.
    Using Lumia 1020 with Cyan and 8.1.1 DP.

    I figured this would be the best place to post it so that an Apple representative might see it.
    Actually it's not as likely to be seen here since there are so many posts for any Apple rep to have to scan. The best way to report an issue to Apple is through the feedback pages or, if you're a member of Apple's developer program, through the bug reporter.
    Regards.

  • Select-options for time stamp

    Any ideas on which data element to be used for select-options for timestamp on the screen so that a user is able to f4 help too.
    i am using data element 'tzntstmps' but i am not getting f4 help for it.

    Hello Trivenn
    I do not think it makes sense to search for any other timestamp data element which might be part of a search help.
    TZNTSTMPS = UTC Time Stamp in Short Form (YYYYMMDDhhmmss)
    How could such a search help look like? A calendar control combined with some kind of "time control"?
    You may facilitate the entry of time stamps in such a way that if the user enters only a date in the LOW field (e.g. 20080422 without time) you change it AT SELECTION-SCREEN (PBO of your selection screen to 20080422000000).
    Correspondingly, you change a date value (e.g. 20080422) at the HIGH field into 20080422235959).
    If, however, the user enters already a complete timestamp you do not change anything.
    Regards
      Uwe

  • How do I add a time stamp to the moving "Major Grid Lines" of a Waveform Chart?

    Hello
    I am using LV 8.5.1
    I am using a Waveform Chart and I have turned on the "Major Grid LInes" using the properties tab of my waveform chart. (properties-->scale->grid lines)
    When the code executes, I want to attach  a time stamp to each moving yellow grid line.
    So as the grid lines move from right to left, there is an associated time stamp for each.
    Can someone help!
    thanks
    J
    Solved!
    Go to Solution.
    Attachments:
    how do I add time to the yellow grid lines.vi ‏16 KB

    hova2010,
    If you right click on your graph and go to X Scale >> Style >> and then choose one of the 3 styles on the far left you shoul see timestamps for those grid lines.
    Ben Sisney
    FlexRIO V&V Engineer
    National Instruments

  • How to get the most current file based on date and time stamp using SSIS?

    Hello,
    Let us assume that files get copied in a specific directory. We need to pick up a file and load data. Can you guys let me know how to get the most current file based on date and time stamp using SSIS?
    Thanks
    thx regards dinesh vv

    hi simon
    i excuted this script it is giving error..
       Microsoft SQL Server Integration Services Script Task
       Write scripts using Microsoft Visual C# 2008.
       The ScriptMain is the entry point class of the script.
    using System;
    using System.Data;
    using Microsoft.SqlServer.Dts.Runtime;
    using System.Windows.Forms;
    namespace ST_9a6d985a04b249c2addd766b58fee890.csproj
        [System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
        public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
            #region VSTA generated code
            enum ScriptResults
                Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
                Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
            #endregion
            The execution engine calls this method when the task executes.
            To access the object model, use the Dts property. Connections, variables, events,
            and logging features are available as members of the Dts property as shown in the following examples.
            To reference a variable, call Dts.Variables["MyCaseSensitiveVariableName"].Value;
            To post a log entry, call Dts.Log("This is my log text", 999, null);
            To fire an event, call Dts.Events.FireInformation(99, "test", "hit the help message", "", 0, true);
            To use the connections collection use something like the following:
            ConnectionManager cm = Dts.Connections.Add("OLEDB");
            cm.ConnectionString = "Data Source=localhost;Initial Catalog=AdventureWorks;Provider=SQLNCLI10;Integrated Security=SSPI;Auto Translate=False;";
            Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.
            To open Help, press F1.
            public void Main()
                string file = Dts.Variables["User::FolderName"].Value.ToString();
                string[] files = System.IO.Directory.GetFiles(Dts.Variables["User::FolderName"].Value.ToString());
                System.IO.FileInfo finf;
                DateTime currentDate = new DateTime();
                string lastFile = string.Empty;
                foreach (string f in files)
                    finf = new System.IO.FileInfo(f);
                    if (finf.CreationTime >= currentDate)
                        currentDate = finf.CreationTime;
                        lastFile = f;
                Dts.Variables["User::LastFile"].Value = lastFile;
                Dts.TaskResult = (int)ScriptResults.Success;
    thx regards dinesh vv

  • How to print date & time stamp on photos?

    How to print date & time stamp on photos?

    Three methods:
    File>process multiple files>labels. Be sure to uncheck "same as source", or the originals will be overwritten. It is best to work on duplicate files, esp. while learning.
    Use the horizontal or vertical type tool to add the information manually to each picture file
    If the same information is to be applied to several pictures, e.g. a copyright notice, use  of a brush made in PSE is very efficient

  • How to get system time format in time stamp

    Hello All,
    I have one problem regarding Time stamp. I want system time stamp format in Time control. If my system date/time format change then automatically my time stamp format should also change.If my system Time stamp format is hh:mm:ss AM/PM dd/mm/yy so in my LabVIEW time stamp format should also same. If System time stamp format hh:mm:ss AM/PM mm/dd/yyyy so in my LabVIEW time stamp format should also same.
    So Please help me its a very important for my automation application.
    Thank You.
    Vinal Gandhi
    Kudos are always Welcome.... :-)
    Vinal Gandhi, CLD
    Software Engineer

    Hi Vinal,
    have you tried the FormatDateTimeString function with a standard string indicator and the "%c" formatcode as described in the help instead of the generic timestamp indicator?
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

Maybe you are looking for