Delimiting an  Org Unit when the sub ordinate relationships still exist.

Hello All,
I tried to delimit an Orgunit when there are subordinate positions already assigned. I am able to delimit without ending the relationships first. Why SAP is letting do this. Now after the delimit I have Orgunit with end date of 06/22/2207, and the subordinate objects enddate is 12/31/9999. Is there a config where we can control this or is this SAP issue?
Thanks,
Chakri.

Hi Chakri,
perhaps the switch
PPOM EXTCK                                                                       
in table T77S0 is the solution for you.
PPOM EXTCK :
                                                                                In the Simple maintenance view, you can use the entry PPOM EXTCK to          
    determine, when delimiting or deleting an organizational unit or a           
    position, whether:                                                                               
o   the system should generate an error message pointing out that the        
        subordinate objects must first be moved, deleted or delimited                                                                               
For this option, enter the value 'X'.                                                                               
o   direct modification of the assignment of subordinate objects should      
        be possible                                                                               
For this option, enter the value ' '.                                                                               
This setting affects the following relationships:                                                                               
o   Organizational unit                                                      
        - Organizational unit                                                    
        - Position                                                               
        - Cost center                                                                               
o   Position                                                                 
        - Person                                                                 
        - User                                                                   
        - Business partner                                                       
Regards
Bernd

Similar Messages

  • How to find out the main org units in the system

    Hi,
    I want to find out the all main org units in the system. It means that i have to know all the parent org units not the sub org units.
    Can you please let me know .
    Regards
    Rajesh

    Hi,
    As I understood about your query, go to PA30, select the position field, select the structure search tab, go to find(Ctrl+F), select the object type S-position, give the position no, then it will give position place and root org, unit of the position and it will expand the structure.
    Regards
    Devi

  • Display of total ansal for each org unit using the sdepth (depth level)

    Hi all,
         We have a requirment in which we will be getting all the active employees related to a perticular org unit then  For every PERNR,we need to  find (as of run date) the org ID on PA0001- ORGEH and total the dollars at the org unit ID level started at the org unit defined on field ORGID and only as far down as defined on selection screen field SDEPTH.
           Example: $10k under Dept D, $9k under Dept C, $8k under Dept B and $7k under Dept A. If field SDEPTH was set to blank, each department would be assigned the above stated budget amount. If SDEPTH was set to 3, the budget would stop at the third level down the org chain (assuming A is the org unit defined in field ORGID, org unit C would be the third org down the chain). The total budget at level C would incorporate any dollars calculated from employees that fall below this org unit in the structure. In this example, the total for org unit C would be $19k, B would remain at 8k and A at 7k.
        We are making use of the FM :  RH_STRUC_GET  to get all pernr numbers related to a perticular org unit and sub level units separately and also RP_ANSAL_FROM_WAGETYPES for getting ansal based on the wahge types (multiple wage types can be provided by the user on the selection screen) .
    Please let me know how can i achive the requirement.
    Regards,
    Zareena.
    Edited by: zareena molla on May 20, 2008 7:14 AM

    Thanks Dan.
    Appreciate if you can help on the below points as well.
    1. As part of divestiture/transfer postings: The system is reversing some Previous Year(PY) equity accounts into themselves. How can we get the system to eliminate them by posting to COI Clearing account. Basically, we dont want the PY accounts to be touched?
    For the Retained earnings - PY account, the system is actually posting to COI clearing account.
    These PY accounts are part of some scopes for equitization.
    Is there any link between the "balance carry forward" - list of items table and the divestiture postings?
    Does the system check this table while posting/reversing the equity(PY) accounts?
    2. I want to understand the sequence in which the system posts the documents at the old parent and new parent (group) level.
    The same activity number is there  for Total Divestiture, total transfer documents posted at new parent level and total divestiture document posted at old parent level.
    Does the system follow bottom up approach? Thereby creating total divestiture document at old parent level.
    Followed by documents at upper level (new parent level)
    Also , at the upper level(new parent level), does it post documents in the way they are shown in the log? (We havent changed the default sequence maintained in UCWB - COI settings). so it will post first consolidation doc, followed by total divestiture, followed by total transfer docs at the new parent level?
    Is this the reason for the double value being posted at new parent for equity holding data?
    Will studying the statistical items (corresponding to eliminated equity holding items) be relevant here to understand why at upper level there is double the value being posted by system?
    Thanks.

  • Need the Org Unit till the parent node the employee is attached to

    Hi,
    We have a requirement to find out the Sales Org the User is attached to as well get list of all sales org above it till the main node. Basically its reporting for Org Unit to the upper chain.
    I am sure there should be some standard FM or report to achieve this. If any of you are aware, pls help.
    Regards,
    chandra.

    Try
    HRCA_SALESORG_GETDETAIL 
    HRCA_SALESORG_LIST      
    RH_BM_GET_TOP_NODE
    <b>TIP</b>
    <b><u>Go to SE37-> F4-> Function module = "RH","HR" 
    Max no of hits = 999999 Click "Execute"
    Find "Nod" or "Sale" or "Org"</u></b>
    Hope this’ll give you idea!!
    <b>P.S award the points.</b>
    Good luck
    Thanks
    Saquib Khan
    "Some are wise and some are otherwise"

  • The Bug about 'DB_SECONDARY_BAD' still exists in BerkeleyDB4.8!

    The Bug about 'DB_SECONDARY_BAD' still exists in BerkeleyDB4.8?
    I'm sorry for my poor English, But I just cannot find anywhere else for help.
    Thanks for your patience first!
    I'm using BDB4.8 C++ API on Ubuntu 10.04, Linux Kernel 2.6.32-24-generic
    $uname -a
    $Linux wonpc 2.6.32-24-generic #43-Ubuntu SMP Thu Sep 16 14:17:33 UTC 2010 i686 GNU/Linux
    When I update(overwrite) a record in database, I may get a DB_SECONDARY_BAD exception,
    What's worse, This case doesn't always occures, it's random. So I think it probably a bug
    of BDB, I have seen many issues about DB_SECONDARY_BAD with BDB4.5,4.6...
    To reproduce the issue, I make a simplified test program from my real program.
    The data to be stroed into database is a class called 'EntryData', It's defined in db_access.h,
    where also defines some HighLevel API functions that hide the BDB calls, such as
    store_entry_data(), which use EntryData as its argument. The EntryData have a string-type
    member-data 'name' and a vector<string>-type mem-data 'labels', So store_entry_data() will
    put the real data of EntryData to a contiguous memory block. The get_entry_data() returns
    an EntryData builed up from the contiguous memory block fetched from database.
    The comlete test program is post following this line:
    /////////db_access.h////////////
    #ifndef __DB_ACCESS_H__
    #define __DB_ACCESS_H__
    #include <string>
    #include <vector>
    #include <db_cxx.h>
    class EntryData;
    //extern Path DataDir; // default value, can be changed
    extern int database_setup();
    extern int database_close();
    extern int store_entry_data(const EntryData&, u_int32_t = DB_NOOVERWRITE);
    extern int get_entry_data(const std::string&, EntryData*, u_int32_t = 0);
    extern int rm_entry_data(const std::string&);
    class DBSetup
    // 构造时调用database_setup, 超出作用域自动调用database_close .
    // 该类没有数据成员.
    public:
    DBSetup() {
    database_setup();
    ~DBSetup() {
    database_close();
    class EntryData
    public:
    typedef std::vector<std::string> LabelContainerType;
    EntryData() {}
    EntryData(const std::string& s) : name(s) {}
    EntryData(const std::string& s, LabelContainerType& v)
    : name(s), labels(v) {}
    EntryData(const std::string&, const char*[]);
    class DataBlock;
    // 直接从内存块中构建, mem指针将会从数据库中获取,
    // 它就是EntryData转化成的DataBlock中buf_ptr->buf的内容.
    EntryData(const void* mem_blk, const int len);
    ~EntryData() {};
    const std::string& get_name () const { return name; }
    const LabelContainerType& get_labels() const { return labels; }
    void set_name (const std::string& s) { name = s; }
    void add_label(const std::string&);
    void rem_label(const std::string&);
    void show() const;
    // get contiguous memory for all:
    DataBlock get_block() const { return DataBlock(*this); }
    class DataBlock
    // contiguous memory for all.
    public:
    DataBlock(const EntryData& data);
    // 引进一块内存作为 buf_ptr->buf 的内容.
    // 例如从数据库中获取结果
    DataBlock(void* mem, int len);
    // 复制构造函数:
    DataBlock(const DataBlock& orig) :
    data_size(orig.data_size),
    capacity(orig.capacity),
    buf_ptr(orig.buf_ptr) { ++buf_ptr->use; }
    // 赋值操作符:
    DataBlock& operator=(const DataBlock& oth)
    data_size = oth.data_size;
    capacity = oth.capacity;
    if(--buf_ptr->use == 0)
    delete buf_ptr;
    buf_ptr = oth.buf_ptr;
    return *this;
    ~DataBlock() {
    if(--buf_ptr->use == 0) { delete buf_ptr; }
    // data()函数因 Dbt 构造函数不支持const char*而被迫返回 char*
    // data() 返回的指针是应该被修改的.
    const char* data() const { return buf_ptr->buf; }
    int size() const { return data_size; }
    private:
    void pack_str(const std::string& s);
    static const int init_capacity = 100;
    int data_size; // 记录数据块的长度.
    int capacity; // 已经分配到 buf 的内存大小.
    class SmartPtr; // 前向声明.
    SmartPtr* buf_ptr;
    class SmartPtr
    friend class DataBlock;
    char* buf;
    int use;
    SmartPtr(char* p) : buf(p), use(1) {}
    ~SmartPtr() { delete [] buf; }
    private:
    std::string name; // entry name
    LabelContainerType labels; // entry labels list
    }; // class EntryData
    #endif
    //////db_access.cc/////////////
    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    #include <vector>
    #include <algorithm>
    #include "directory.h"
    #include "db_access.h"
    using namespace std;
    static Path DataDir("~/mydict_data"); // default value, can be changed
    const Path& get_datadir() { return DataDir; }
    static DbEnv myEnv(0);
    static Db db_bynam(&myEnv, 0); // using name as key
    static Db db_bylab(&myEnv, 0); // using label as key
    static int generate_keys_for_db_bylab
    (Db* sdbp, const Dbt* pkey, const Dbt* pdata, Dbt* skey)
    EntryData entry_data(pdata->get_data(), pdata->get_size());
    int lab_num = entry_data.get_labels().size();
    Dbt* tmpdbt = (Dbt*) malloc( sizeof(Dbt) * lab_num );
    memset(tmpdbt, 0, sizeof(Dbt) * lab_num);
    EntryData::LabelContainerType::const_iterator
    lab_it = entry_data.get_labels().begin(), lab_end = entry_data.get_labels().end();
    for(int i = 0; lab_it != lab_end; ++lab_it, ++i) {
    tmpdbt[ i ].set_data( (void*)lab_it->c_str() );
    tmpdbt[ i ].set_size( lab_it->size() );
    skey->set_flags(DB_DBT_MULTIPLE | DB_DBT_APPMALLOC);
    skey->set_data(tmpdbt);
    skey->set_size(lab_num);
    return 0;
    //@Return Value: return non-zero at error
    extern int database_setup()
    const string DBEnvHome (DataDir + "DBEnv");
    const string dbfile_bynam("dbfile_bynam");
    const string dbfile_bylab("dbfile_bylab");
    db_bylab.set_flags(DB_DUPSORT);
    const u_int32_t env_flags = DB_CREATE | DB_INIT_MPOOL;
    const u_int32_t db_flags = DB_CREATE;
    rmkdir(DBEnvHome);
    try
    myEnv.open(DBEnvHome.c_str(), env_flags, 0);
    db_bynam.open(NULL, dbfile_bynam.c_str(), NULL, DB_BTREE, db_flags, 0);
    db_bylab.open(NULL, dbfile_bylab.c_str(), NULL, DB_BTREE, db_flags, 0);
    db_bynam.associate(NULL, &db_bylab, generate_keys_for_db_bylab, 0);
    } catch(DbException &e) {
    cerr << "Err when open DBEnv or Db: " << e.what() << endl;
    return -1;
    } catch(std::exception& e) {
    cerr << "Err when open DBEnv or Db: " << e.what() << endl;
    return -1;
    return 0;
    int database_close()
    try {
    db_bylab.close(0);
    db_bynam.close(0);
    myEnv.close(0);
    } catch(DbException &e) {
    cerr << e.what();
    return -1;
    } catch(std::exception &e) {
    cerr << e.what();
    return -1;
    return 0;
    // 返回Dbt::put()的返回值
    int store_entry_data(const EntryData& e, u_int32_t flags)
    int res = 0;
    try {
    EntryData::DataBlock blk(e);
    // data()返回的buf中存放的第一个字符串便是 e.get_name().
    Dbt key ( (void*)blk.data(), strlen(blk.data()) + 1 );
    Dbt data( (void*)blk.data(), blk.size() );
    res = db_bynam.put(NULL, &key, &data, flags);
    } catch (DbException& e) {
    cerr << e.what() << endl;
    throw; // 重新抛出.
    return res;
    // 返回 Db::get()的返回值, 调用成功时 EntryData* e的值才有意义
    int get_entry_data
    (const std::string& entry_name, EntryData* e, u_int32_t flags)
    Dbt key( (void*)entry_name.c_str(), entry_name.size() + 1 );
    Dbt data;
    data.set_flags(DB_DBT_MALLOC);
    int res = db_bynam.get(NULL, &key, &data, flags);
    if(res == 0)
    new (e) EntryData( data.get_data(), data.get_size() );
    free( data.get_data() );
    return res;
    int rm_entry_data(const std::string& name)
    Dbt key( (void*)name.c_str(), name.size() + 1 );
    cout << "to remove: \'" << name << "\'" << endl;
    int res = db_bynam.del(NULL, &key, 0);
    return res;
    EntryData::EntryData(const std::string& s, const char* labels_arr[]) : name(s)
    {   // labels_arr 需要以 NULL 结尾.
    for(const char** i = labels_arr; *i != NULL; i++)
    labels.push_back(*i);
    EntryData::EntryData(const void* mem_blk, const int len)
    const char* buf = (const char*)mem_blk;
    int consumed = 0; // 已经消耗的mem_blk的大小.
    name = buf; // 第一串为 name
    consumed += name.size() + 1;
    for (string label = buf + consumed;
    consumed < len;
    consumed += label.size() + 1)
    label = buf + consumed;
    labels.push_back(label);
    void EntryData::add_label(const string& new_label)
    if(find(labels.begin(), labels.end(), new_label)
    == labels.end())
    labels.push_back(new_label);
    void EntryData::rem_label(const string& to_rem)
    LabelContainerType::iterator iter = find(labels.begin(), labels.end(), to_rem);
    if(iter != labels.end())
    labels.erase(iter);
    void EntryData::show() const {
    cout << "name: " << name << "; labels: ";
    LabelContainerType::const_iterator it, end = labels.end();
    for(it = labels.begin(); it != end; ++it)
    cout << *it << " ";
    cout << endl;
    EntryData::DataBlock::DataBlock(const EntryData& data) :
    data_size(0),
    capacity(init_capacity),
    buf_ptr(new SmartPtr(new char[init_capacity]))
    pack_str(data.name);
    for(EntryData::LabelContainerType::const_iterator \
    i = data.labels.begin();
    i != data.labels.end();
    ++i) { pack_str(*i); }
    void EntryData::DataBlock::pack_str(const std::string& s)
    int string_size = s.size() + 1; // to put sting in buf separately.
    if(capacity >= data_size + string_size) {
    memcpy(buf_ptr->buf + data_size, s.c_str(), string_size);
    else {
    capacity = (data_size + string_size)*2; // 分配尽可能大的空间.
    buf_ptr->buf = (char*)realloc(buf_ptr->buf, capacity);
    memcpy(buf_ptr->buf + data_size, s.c_str(), string_size);
    data_size += string_size;
    //////////// test_put.cc ///////////
    #include <iostream>
    #include <string>
    #include <cstdlib>
    #include "db_access.h"
    using namespace std;
    int main(int argc, char** argv)
    if(argc < 2) { exit(EXIT_FAILURE); }
    DBSetup setupup_mydb;
    int res = 0;
    EntryData ed(argv[1], (const char**)argv + 2);
    res = store_entry_data(ed);
    if(res != 0) {
         cerr << db_strerror(res) << endl;
         return res;
    return 0;
    // To Compile:
    // $ g++ -ldb_cxx -lboost_regex -o test_put test_put.cc db_access.cc directory.cc
    //////////// test_update.cc ///////////
    #include <iostream>
    #include <cstdlib>
    #include <string>
    #include <boost/program_options.hpp>
    #include "db_access.h"
    using namespace std;
    namespace po = boost::program_options;
    int main(int argc, char** argv)
    if(argc < 2) { exit(EXIT_SUCCESS); }
    DBSetup setupup_mydb;
    int res = 0;
    po::options_description cmdopts("Allowed options");
    po::positional_options_description pos_opts;
    cmdopts.add_options()
    ("entry", "Specify the entry that will be edited")
    ("addlabel,a", po::value< vector<string> >(),
    "add a label for specified entry")
    ("removelabel,r", po::value< vector<string> >(),
    "remove the label of specified entry")
    pos_opts.add("entry", 1);
    po::variables_map vm;
    store( po::command_line_parser(argc, argv).
    options(cmdopts).positional(pos_opts).run(), vm );
    notify(vm);
    EntryData entry_data;
    if(vm.count("entry")) {
    const string& entry_to_edit = vm["entry"].as<string>();
    res = get_entry_data( entry_to_edit, &entry_data );
    switch (res)
    case 0:
    break;
    case DB_NOTFOUND:
    cerr << "No entry named: \'"
    << entry_to_edit << "\'\n";
    return res;
    break;
    default:
    cerr << db_strerror(res) << endl;
    return res;
    } else {
    cerr << "No entry specified\n";
    exit(EXIT_FAILURE);
    EntryData new_entry_data(entry_data);
    typedef vector<string>::const_iterator VS_CI;
    if(vm.count("addlabel")) {
    const vector<string>& to_adds = vm["addlabel"].as< vector<string> >();
    VS_CI end = to_adds.end();
    for(VS_CI i = to_adds.begin(); i != end; ++i) {
    new_entry_data.add_label(*i);
    if(vm.count("removelabel")) {
    const vector<string>& to_rems = vm["removelabel"].as< vector<string> >();
    VS_CI end = to_rems.end();
    for(VS_CI i = to_rems.begin(); i != end; ++i) {
    new_entry_data.rem_label(*i);
    cout << "Old data| ";
    entry_data.show();
    cout << "New data| ";
    new_entry_data.show();
    res = store_entry_data(new_entry_data, 0); // set flags to zero permitting Over Write
    if(res != 0) {
    cerr << db_strerror(res) << endl;
    return res;
    return 0;
    // To Compile:
    // $ g++ -ldb_cxx -lboost_regex -lboost_program_options -o test_update test_update.cc db_access.cc directory.cc

    ////////directory.h//////
    #ifndef __DIRECTORY_H__
    #define __DIRECTORY_H__
    #include <string>
    #include <string>
    #include <sys/types.h>
    using std::string;
    class Path
    public:
    Path() {}
    Path(const std::string&);
    Path(const char* raw) { new (this) Path(string(raw)); }
    Path upper() const;
    void operator+= (const std::string&);
    // convert to string (char*):
    //operator std::string() const {return spath;}
    operator const char*() const {return spath.c_str();}
    const std::string& str() const {return spath;}
    private:
    std::string spath; // the real path
    inline Path operator+(const Path& L, const string& R)
    Path p(L);
    p += R;
    return p;
    int rmkdir(const string& path, const mode_t mode = 0744, const int depth = -1);
    #endif
    ///////directory.cc///////
    #ifndef __DIRECTORY_H__
    #define __DIRECTORY_H__
    #include <string>
    #include <string>
    #include <sys/types.h>
    using std::string;
    class Path
    public:
    Path() {}
    Path(const std::string&);
    Path(const char* raw) { new (this) Path(string(raw)); }
    Path upper() const;
    void operator+= (const std::string&);
    // convert to string (char*):
    //operator std::string() const {return spath;}
    operator const char*() const {return spath.c_str();}
    const std::string& str() const {return spath;}
    private:
    std::string spath; // the real path
    inline Path operator+(const Path& L, const string& R)
    Path p(L);
    p += R;
    return p;
    int rmkdir(const string& path, const mode_t mode = 0744, const int depth = -1);
    #endif
    //////////////////// All the code is above ////////////////////////////////
    Use the under command
    $ g++ -ldb_cxx -lboost_regex -o test_put test_put.cc db_access.cc directory.cc
    to get a test program that can insert a record to database.
    To insert a record, use the under command:
    $ ./test_put ubuntu linux os
    It will store an EntryData named 'ubuntu' and two labels('linux', 'os') to database.
    Use the under command
    $ g++ -ldb_cxx -lboost_regex -lboost_program_options -o test_update test_update.cc db_access.cc directory.cc
    to get a test program that can update the existing records.
    To update the record, use the under command:
    $ ./test_update ubuntu -r linux -a canonical
    It will update the with the key 'ubuntu', with the label 'linux' removed and a new
    label 'canonical'.
    Great thanks to you if you've read and understood my code!
    I've said that the DB_SECONDARY_BAD exception is random. The same operation may cause
    exception in one time and may goes well in another time.
    As I've test below:
    ## Lines not started with '$' is the stdout or stderr.
    $ ./test_put linux os linus
    $ ./test_update linux -r os
    Old data| name: linux; labels: os linus
    New data| name: linux; labels: linus
    $ ./test_update linux -r linus
    Old data| name: linux; labels: linus
    New data| name: linux; labels:
    dbfile_bynam: DB_SECONDARY_BAD: Secondary index inconsistent with primary
    Db::put: DB_SECONDARY_BAD: Secondary index inconsistent with primary
    terminate called after throwing an instance of 'DbException'
    what(): Db::put: DB_SECONDARY_BAD: Secondary index inconsistent with primary
    已放弃
    Look! I've received a DB_SECONDARY_BAD exception. But thus exception does not always
    happen even under the same operation.
    For the exception is random, you may have not the "luck" to get it during your test.
    So let's insert a record by:
    $ ./test_put t
    and then give it a great number of labels:
    $ for((i = 0; i != 100; ++i)); do ./test_update t -a "label_$i"; done
    and then:
    $ for((i = 0; i != 100; ++i)); do ./test_update t -r "label_$i"; done
    Thus, the DB_SECONDARY_BAD exception is almost certain to happen.
    I've been confused by the problem for times. I would appreciate if someone can solve
    my problem.
    Many thanks!
    Wonder

  • I cannot updates in my application store because the previous email add still exist even i have already new apple id

    I cannot update in my application store because the previous email add still exist even i have a new apple id

    FAQ apple id http://support.apple.com/kb/he37
    Doesn't matter if you have a new ID, all apps are tied to the apple id that was used to download it.

  • I import photos into lightroom and they appear just fine and then after 'developing' some disappear from the library though they still exist in the previous import window

    I import photos into lightroom and they appear just fine and then after 'developing' some disappear from the library though they still exist in the previous import window

    Running MacOS 10.9.4 16 Gb RAM Lightroom v5.2

  • Critical abap hr req - How to find the previous org unit of the employee?

    Hi Experts ,
    I need small inputs from your end...
    I need to find the employee org unit based on the latest one.....
    i just want to know if an employe is Transfered from the org unit .....we can check it from the ORG unit.
    My requirement is to now capture only the org unit of IT folks not for the employees who are transfered to NON-IT department.....
    sop if an empployee 5000 org unit belongs to IT of employee 1000 and NOW he transfered out of IT with current 6000 org unit then how can we read that 5000 ?
    now i am using PCH logical data base...
    Based on evaluation path(Pers-0)  i will pick up the pernr 1000.
    now when i check the org unit it is 6000 with end da 12/31/9999.
    then i loop
    select * from pa0001 into itab where pernr = objec--objid and otype = 'P'.
    enselect.
    loop at itab where pernr = objec-objid.
    Here in the loop what is the logic we need to write to pick up the previous org unit please suggest
    endloop.
    Regards
    sas

    >
    Faisal Altaf wrote:
    > Hi,
    >
    > Please Test the following Sample Code hope it will solve out your problem,
    >
    >
    TABLES: pa0001.
    >
    > DATA: it_pa0001 LIKE STANDARD TABLE OF pa0001 WITH HEADER LINE,
    >       begda TYPE begda.
    >
    > SELECT SINGLE begda FROM pa0001 INTO begda
    >   WHERE pernr = '00000001'
    >     AND endda = '99991231'.
    >
    > begda = begda - 1.
    >
    > SELECT * FROM pa0001
    >   INTO CORRESPONDING FIELDS OF TABLE it_pa0001
    >   WHERE pernr = '00000001'
    >     AND endda = begda.
    >
    > Please Reply if any Issue,
    >
    > Best Regards,
    > Faisal
    Hy Faisal...what is the begda value there?
    Regards
    sas

  • How does workflow retrieve users under an org. unit when sending email

    Dear All:
    Workflow supports sending email activity where you can specify the receipt type and receipt ID. For example, the email is supposed to send to the users within an organizational unit.
    I am just wondering how SAP workflow determines the users within an organizational unit? Does it use HR-ORG evaluation path to get objects under an org. unit?
    Many Thanks in advance!
    Haifeng

    Hi,
    For example, the email is supposed to send to the users
    within an organizational unit.
    Yes workflow template and standard task are also part of organizational unit. As you mentioned that the if the recipient type is choosen as Organizational Object then the workflow system will try to fetch the data from the organizational unit based on the recipient ID you provided in the mail step let say if you are using the recipient id as position Id then workflow system will try to get the data from the organizational unit
    Org object types supported by the workflow system are US, C, S, O....
    If at all the you choose the workflow recipient type as email address which can be a external address then in that case it just simply makes use of BCS communication methods and and in this case your SCOT settings must be configured properly.
    The difference between the first and second  is, in the first case the work items or mails/documents will be sent to sap inbox (SBWP) in the second case it depends on the mail ID you mention for example a outlook mail ID.
    Regards
    Pavan

  • ELVIS II units - when the DMM leads are connected together with the unit set to read AC current, the unit displays 3.56 mA? Is this normal?

    For the ELVIS II unit with the instrument launcher selected - using the DMM to measure AC current: when the leads are connected together, the display show 3.56 mA. Is this normal? Readings do not become accurate until above 10 mArms.

    Hello,
    Yes, this is normal. The AC modes in DMMs become nonlinear with very small input signals near the bottom end of their ranges. The result is a residual error reading. This is not an offset -- as you noted, the accuracy improves as you increase the input signal. While this threshold is not specified for ELVIS II, it should be around 2% of range (10 mArms in the 500 mArms range, as you observed). By comparison, that threshold is specified as 5% of range for myDAQ and 1% of range for the PXI-4072. 
    I hope this helps.
    Charles Y.
    National Instruments

  • Getting CRM Org unit by the R/3 sales org/office/group

    Hello everyone,
    We have a need to get CRM Org unit ID by R/3 sales org/office/group as maintained in
    transaction PPOMA_CRM.
    Does anyone knows a function/table that gives this mapping ?
    Thanks,
       Nitzan.

    Hi Nitzan,
    Try it with this static methods of class CL_CRM_ORGMAN_SERVICES:
    -- From  CRM ID to R3 ID
    MAP_HROBJECT_TO_R3_SALES_GRP
    MAP_HROBJECT_TO_R3_SALES_OFF
    MAP_HROBJECT_TO_R3_SALES_ORG
    -- From R3 ID to CRM ID
    MAP_R3_SALES_GRP_TO_HROBJECT
    MAP_R3_SALES_OFF_TO_HROBJECT
    MAP_R3_SALES_ORG_TO_HROBJECT
    Kind regards,
    Garcia

  • Does the frequency selection tool still exist in audition?

    Does this tool still exist in audition? I am sure it was available in soundbooth
    Very useful if you are trying to remove a constant buzzing of a certain frequency from an audio file.

    Thanks for your answer!
    Disappointing that it's gone. Will definitely submit a feature request.
    The frequency selection tool was convenient, especially in the spectral view, because you could manually select one frequency across the entire file, while being zoomed in at only one specific time segment. You always risk forgetting/not catching something at the beginning or end of the file, when doing the manual selection tools, like the rectangle selection. Plus you'll have to be zoomed out all the way, so it's a bit harder to exactly select the frequency you need.
    The automated tools are useful, but in early 2015 I still value the human pattern recognition systems and artistic and aesthetic judgement over that of an AI. (We'll see for how much longer,...)

  • How to Avoid Printing the data twice when the sub report has drill down?

    Hello,
    I have a sub report that has drill down which is placed in report footer.When i run the report sub report displays the data but when i tried to drill down it displays the same data again.After that i can able to drill down on sub report.Is there any way to avoid
    printing the same data twice.
    Thanks in advance.

    Hi,
    If the subreport you're referring to does not grow in size and it does not span multiple pages and you know the size of it, here's what you can do to stop drilling into subreports :
    1) Create a text object as large as the subreport (perhaps bigger than it) and fill it with spaces or new lines
    2) Place it 'over' the subreport such that it covers the entire area occupied by the subreport
    3) The subreport at all times should be smaller than the text object in all dimensions
    Now, when you hover the mouse over the subreport, there isn't any magnifying glass for you to drill down into.
    If the subreport has further drill-down functionality, then this isn't for you! Because, it just wouldn't allow you click on any objects in the subreport because of the text object eclipsing it. This is the only workaround I know at this point in time and I know a lot of users are looking for this.
    I would suggest that you log this as an Enhancement Request at http://ideas.sap.com for our developers to have a look into this.
    And finally, I also found an old forum post where Jamie has suggested a way to get this working on the Business Objects Environment. Give it a shot, if that's where the reports are eventually run.
    How to disable subreport view
    Hope this helps!
    -Abhilash

  • How can I change the iCloud associated with my iPhone when the email account no longer exists?

    My mum had the iPhone that I'm now using for a couple of years, and the iCloud account attached to it uses an email address that was shut down by Virgin, so we can't access it any more to verify emails, etc.
    Now that I'm using it, I want to assign it to my ID or even reset it, but the password my mum is certain she used won't be accepted. I looked around the community and tried to change her iCloud settings online to the old email address and then delete the iCloud on my iPhone using the new password for the new ID she now has, but it won't seem to accept any password.
    Is there any way at all I can do this, or will I have to get a Genius appointment or something?
    Thank you for any help you can give me!

    Hi:
    Log in and click on your user name, then look at the upper the right side of the page.
    Click on the triangle to the left of the "More Resources" section.
    This will drop down, and give you options.
    Select User Settings.
    This will now open a page, and in the light blue type on top, follow it along to Contact Information, click on that, and change your e-mail address to what you want, and hit the blue submit button on the bottom right side of the page.
    Paul

  • How can I authorise my computer when the email address no longer exists

    Yesterday, due to software problems I had to have my computer wiped. I reinstalled iTunes and loaded all my music, films etc back on (these are kept on a hard drive) with no problems. I now have about 120 songs/videos that will not play as they were purchased with an email address that no longer exists. iTunes keeps asking me to authorise my computer but I do not know the password. Is there any way I can get these purchases back? Not techy at all, please help, I've been at this all day!!!

    You will need to call Apple at 800-275-2273 and ask for the Account security department.  They will have you sign into the My Apple ID site at id.apple.com using the Manage Apple ID button and generate a temporary support pin.  It can be found in the lower left corner of the Password and Security section once you log in.
    Once you give them the support pin, they will ask for one other piece of information from the account in order to verify that you own it.  This can either be one of the current security questions, the credit card linked to the account, a device serial number, or a device verification code that they can send you.
    Good luck!

Maybe you are looking for

  • LED in field and traffic lights in ALV filter

    Hi experts, Am showing LED in field of ALV(OOPs oriented)and when i click on  ALV filter for led field..it shows me Traffic lights in poup for filter.Please help me to get LED in filter popup also. Thanks, Sajay.

  • Entering Inv for PO with ref to Internal Order in FI

    Hi All, When a PO is created with Acct Asgmnt Cat "F" (Order) and ref to a FI "Internal Order" number why can't I enter an Invoice against this PO....I get a message in MIRO saying "No suitable items found for the PO" What does this mean? How can the

  • Please Help me in WIFI PROBLEM N97 MINI

    I doubt anyone will check that old topic which has four + pages so posting here again for urgent and helpful replies... Guys i have bought n97 mini about a week back and experiencing this same problem. of wi-fi contionuously dropping when i am in goo

  • Identifying rings and edges with problems

    Hi I have new polygon layers that produce a validation error for a polygon of gtype of 2007: 13350 [Element <1>] [Rings 1, 8][Edge <9> in ring <1>][Edge <33> in ring <8>] The error is: ORA-13350: two or more rings of a complex polygon touch Cause: Th

  • Re: kmosx: How to recover if you can't repair with Disk Utility

    "This tip is ready for consideration."