Employment Staatus Indicator

Hi Srinivas,
Now the problem  was solved. Thanks alot  for your helpful information.
reg,
naga
Hi Naga,
I guess as discussed before the problem is Date thing only. Let me explain it clearly what might have happenned !
Let us assume you have terminated the employee today (01/31/2008). So employment status is withdrawn from 01/31/2008 to 12/31/9999.
If your other infotype record has (for e.g. IT0022) has BEGDA (Begin Date) as 01/01/2007 (Less than 01/31/2008) the Employment status will show 'Active' in the header structure. It will show withdrawn status in the header structure only when the BEGDA of infotype is greater or equal to 01/31/2008 (i.e. termination date). This is the standard behavior when 'Choose Data' Check box is checked.
If 'Choose Data' is unchecked (for respective infotype) then, the status on header structure will shown as on current date irrespective of BEGDA of the infotype.
Depending upon your requirement you decide to check/uncheck the 'Choose Data'.
Regards,
Shrinivas

Hi Naga,
I guess as discussed before the problem is Date thing only. Let me explain it clearly what might have happenned !
Let us assume you have terminated the employee today (01/31/2008). So employment status is withdrawn from 01/31/2008 to 12/31/9999.
If your other infotype record has (for e.g. IT0022) has BEGDA (Begin Date) as 01/01/2007 (Less than 01/31/2008) the Employment status will show  'Active'  in the header structure. It will show withdrawn status in the header structure only when the BEGDA of infotype is greater or equal to 01/31/2008 (i.e. termination date). This is the standard behavior when 'Choose Data' Check box is checked.
If 'Choose Data' is unchecked (for respective infotype)  then, the status on header structure will shown as on current date irrespective of BEGDA of the infotype.
Depending upon your requirement you decide to check/uncheck the 'Choose Data'.
Regards,
Shrinivas

Similar Messages

  • Inserting an employment period (rehiring/leaving) between two existing ones

    Hi experts,
    I'm coming across another limitation of PA and even if i have very little hope i'm interesting in getting your views on the matter.
    We deal with a large number of fixed term contracts. It can happen for instance that a number of short terms contracts are proactively entered into SAP, for instance contract A from 01.05.2009 to 15.05.2009 and contract B from 10.06.2009 to 20.06.2009. Now it can happen than we need to insert an additional contract within those 2 existing ones, let's say contract Z from 25.05.2009 to 03.06.2009. The user should therefore operate a rehiring action and then a leaving action again. The thing is the system doesn't let you do so and issues an error message following a check on employment status.
    Has anyone any good idea about how to go around this ? Except of course suppressing all future actions and recreating, which i would want to avoid obviously :o)
    Thanks,
    Sylvain.

    for this u need to configure an action   employee inactive  action in  PA40  in before that check the below documentation
    for this scenario u can use the status as 1  which is customer defined
    Employment Status
    Definition
    Status indicators for personnel actions.
    Use
    The three status indicators have the following meanings:
    1. Customer defined: Not used in the standard system. You can use
    this indicator according to your requirements.
    2. Employment: 0: Employee not with company
    1: Employee with company, but inactive2: Employee with company, but as retiree
    3: Employee active in company
    3. Special payment: 0: Special payment: no entitlement
    1: Special payment: standard wage type
    2: Special payment: special wage type
    This special payment indicator is only relevant for the country
    versions of Austria and Spain.
    Procedure
    Each action is assigned the three status indicators STAT1 (customer defined), STAT2 (employment), STAT3 (special payment) in the customizing system.
    When a personnel action record is created, the system automatically fills the Customer defined, Employment and Special payment fields if the action affects the employee's status.
    The first record of the Actions infotype is assigned the status specified in the customizing system. All other records
    have the same status indicator as the new personnel action if this is not BLANK in the customizing system.
    have the same status indicator as the previous record if this is BLANK in the customizing system.
    This applies to all three indicators.
    Edited by: Sikindar on Apr 23, 2009 1:35 PM

  • Concurrent Employment

    We have concurrent employment maintained in our project. I need to develop reports based on PNPCE LDB. I wanted to know major differences between PNP and PNPCE and various pitfalls while using PNPCE LDB.

    hi,
    check the differences between pnp and pnpce in se36 transaction.
    RE SAPDBPNPCE
    Text
    HR Master Data (Incl. Concurrent Employment)
    Purpose
    The PNPCE logical database supports the evaluation of HR master data. It includes the functions of the PNP logical database and offers additional evaluation options. Therefore, you should use the PNPCE logical database instead of the PNP logical database for all new developments.
    The enhanced functionality of PNPCE in comparison to PNP essentially concerns the evaluation of Concurrent Employment, that is the possibility to group evaluate several assignments/personnel numbers of a person. The new events 'GET PERSON' and 'GET GROUP' as well as an enhanced syntax for the INFOTYPES statement (addition AS PERSON TABLE) for the procurement of infotype data enable you to use the new functionality. The use of these new functions is optional. You can run a PNPCE report that does not use the new events and the addition for the INFOTYPES statement in a PNP-compatible session. Since the PNPCE also has an improved selection screen, each report benefits from this even if the report does not use the functions for evaluating Concurrent Employment.
    Prerequisites
    A report that wants to use the PNPCE must enter this in its report attributes under Logical database.
    In addition, the PERNR structure must be declared in the report using the 'TABLES PERNR' statement. You can only use the PERNR structure again in certain circumstances. The use of the 'GET PERNR' event is therefore forbidden. Instead, use the 'GET PERAS' event. Except for the PERNR-PERNR component, all other components of the PERNR structure are no longer filled and have initial values. This kind of programming (with the exception of PERNR-PERNR) therefore not permitted.
    In addition to the 'GET PERAS' event, you can also use the GET PERSON' and 'GET GROUP' events. To be able to use these events, you must declare them using the NODES statement (NODES PERSON', 'NODES GROUP', or. NODES PERAS').
    Explanation of Terms
    If the 'GET PERSON' and 'GET GROUP events and the 'AS PERSON TABLE' addition for the INFOTYPES statement are not used, the report indicates that it does not require the functionality for evaluating Concurrent Employment. In this case, the report runs in a PNP-compatible session. This is referred to as PNP mode in the following documentation. On the other hand, if the report uses the functionality for evaluating Concurrent Employment we refer to CE mode.
    Features
    Process of an Evaluation
    The PNPCE selection screen offers you as standard a range of functions that you can use to restrict the personnel number and person selection. These are discussed in more detail in the following sections. The process is initially as follows regardless of whether the report runs in CE or PNP mode. All available functions and selection conditions leads to the selection of personnel numbers. If you use the sorting function, this set of personnel numbers is then sorted according to the sort criteria you selected. In PNP mode, the GET PERAS event is triggered as a result for each personnel number.
    In CE mode, the persons belonging to the personnel numbers are determined first for all personnel numbers selected. The GET PERSON event is then triggered for each person. The person ID is specified in the OBJID component of the PERSON structure. PERNR_NUM contains the total number of personnel assignments (= personnel numbers) that this person has and the ALL_PERNRS table, which contains a list of these personnel numbers regardless of whether they were actually selected or not. The SELECTED flag is set to X for the personnel numbers selected. The flag is initial for all personnel numbers that are not selected. The PROCESS flag specifies whether the personnel number should be processed in the rest of the process. This flag is set to X by default for the personnel numbers selected. However, the report can set or delete this flag at the GET PERSON event for all personnel numbers. In this way, report and logical database communicate with each other which enables the report to control the rest of the process.
    In the next step, the logical database groups all personnel numbers of a person that are to be processed (that is, all personnel numbers that have the PROCESS flag set). The report can control the type of grouping using the PNPCE_GROUPING_FROM_PAYROLL flag (normal or payroll grouping) and using the PNPGPRSN (grouping reason) and PNPGPVAL (grouping value) parameters of the selection screen. The GET GROUP event is triggered for each group of personnel numbers determined. The GROUPING_REASON and GROUPING_VALUE components contain the grouping reason and grouping value of this group. The number of personnel numbers that belong to this group and that are processed subsequently is in PERNR_NUM. The included ALL_PERNR table contains a list of these personnel numbers with additional information. The SELECTED flag specifies whether the current personnel number was originally selected (flag is set) or was marked by the report as to be processed. GROUPING_BEGDA and GROUPING_ENDDA contain the validity period that the personnel number has for this grouping. The NO_AUTHORITY flag is set if there is insufficient authorization for a personnel number. This personnel number is not processed further. The SORT component defines a standard sort order for the personnel numbers of a group. The report can change this by overwriting the values. In this way, report and logical database communicate with each other, which controls the further processing sequence of the personnel numbers.
    The GET PERAS event is then triggered for all personnel numbers of the group (with the exception of the personnel numbers for which no authorization exists) in the sequence defined by the SORT component (see above). The SELECTED, GROUPING_BEGDA, and GROUPING_ENDDA components have the same meaning here as with the GET GROUP event. The PROCESSED_BEFORE flag specifies whether the personnel number has already been processed once before (it is possible that the personnel number belongs to several groupings and has been therefore been processed several times).
    Sort Order
    You can sort the list of selected personnel numbers using the Sort function in the application toolbar. You can choose to include up to seven fields from infotype 0001 for the sort. Since several data records can exist for infotype 0001 for a personnel number, you also need to specify for period evaluations (not the case for key date evaluations) whether the sort should take place according to the values of the last or of the first data record in the person selection period.
    In PNP mode, the sorted sequence determines exactly the sequence in which the GET PERAS event is called. In CE mode, the sort determines the sequence in which the GET PERSON event is called. The list of persons is created based on the (sorted) sequence of personnel numbers. If only one person exist for each selected personnel number, the sequence of persons corresponds exactly to the sequence of personnel numbers. However, if several selected personnel numbers lead to the same person, only the first personnel number determines the sort sequence of persons. All other personnel numbers only determine the sequence in which the GET PERAS event is subsequently called. Provided that the report does not require the personnel numbers to be resorted by manipulating the SORT component at the GET GROUP event (see above), the GET PERAS event is called for the personnel numbers of a person in the sequence in which the personnel numbers were (originally) sorted.
    Retrieving Infotype Data Records
    As well as triggering the GET PERSON, GET GROUP, and GET PERAS events, the logical database also provides the data records of the infotypes that are requested using the INFOTYPES statement. In the report, you must specify the INFOTYPES statements where the variable declarations are made. You should do this in any case before the first code is entered.
    In principle, there are three types of INFOTYPES statements:
    INFOTYPES nnnn
    The nnnn infotype is provided with the data records of the current personnel number at the GET PERAS event. Only the data records that are in the evaluation period specified in the selection screen are provided ( this is different to PNP, which provides all data records by default). Alternatively, the report can specify which data records are to be provided using the RP_SET_DATA_INTERVAL, RP_SET_DATA_INTERVAL_INFTY, and RP_SET_DATA_INTERVAL_ALL macros.
    INFOTYPES nnnn AS PERSON TABLE
    The nnnn infotype is provided at the GET GROUP event with the data records of all personnel numbers that are in the included ALL_PERNRS table (of the GROUP structure) and for which authorization exists (NO_AUTHORITY flag is not set). Only the data records that are in the evaluation period specified in the selection screen are provided. Alternatively, the report can specify which data records are to be provided using the RP_SET_DATA_INTERVAL, RP_SET_DATA_INTERVAL_INFTY, and RP_SET_DATA_INTERVAL_ALL macros.
    INFOTYPES nnnn AS PERSON TABLE MODE P
    The nnnn infotype is provided at the GET PERSON event with the data records of all personnel numbers that are in the included ALL_PERNRS table (of the PERSON structure). No authorization check is performed and all existing data records are provided independent of how the evaluation period is defined in the selection screen. The use of the RP_SET_DATA_INTERVAL, RP_SET_DATA_INTERVAL_INFTY, and RP_SET_DATA_INTERVAL_AL macros also has no influence here.
    Selection Options
    You can use all the functions and selection options in the selection screen (initially) to select personnel numbers regardless of whether the report is running in PNP or CE mode. Only in CE mode, the persons belonging to these personnel numbers are then determined. The functions that PNPCE provides to restrict the selection are described in the following. The environment in which these functions are actually used depends on the report and its report category. You can assign a report category to a report in maintenance of report attributes (SE38, Attributes, Change button -> HR report category button). The customer can override this assignment. To do so, perform the  Customizing activity under 'Personnel Management' -> 'Human Resources Information System' -> 'Reporting' -> 'Adjusting the Standard Selection Screen'. Follow the same path to define and change report categories in the Customizing activity. Since the PNP logical database also uses the concept of report categories, ensure that you assign only one report category that is created specially for the PNPCE database to a PNPCE report.
    Selection Fields of the 0000 and 0001 Infotypes
    You can use all the standard fields of the 0000 and 0001 infotypes for selection. You can also use additional selection fields that are the concatenation of two or more of these infotype fields. If possible, do not use these concatenated fields because they do not play a significant role in the selection and can lead to long runtimes in certain circumstances. You can show and hide the required selection fields using the Selection Fields function in the application toolbar. The report category defines a preselection of fields that should be available.
    Dynamic Selections
    The dynamic selections enable you to select according to any infotype fields and, in particular, according to customer-specific infotype fields. You can show and hide the dynamic selections using the Dynamic Selections function in the application toolbar. The report category controls whether this appears as a dialog box or inplace, that is whether the dynamic selections are supported at all. The basis for the dynamic selections is a selection view that defines which infotypes and which fields can be used for selection. You can define the selection view in the ABAP Workbench. You must choose For any table as the type of selection view (the For logical database type is not permitted although you may have presumed differently at first). The report category is used to control which selection view is used for the dynamic selections. If you use the dynamic selections, the Restrict by OrgStructure, Search Help, and Selection ID functions are not available.
    Restrict by OrgStructure
    You can also select personnel numbers by their position in the organizational structure. To do so, you use the OrgStructure function in the application toolbar. This button displays the organizational structure. Here you can select the organizational units to which the personnel numbers to be selected should belong. It is insignificant if the personnel numbers are assigned to the selected organizational unit directly or to one of its subordinate organizational units. If you restrict the selection by organizational structure, the Dynamic Selections, Search Help, and Selection ID functions are not available.
    Search Help
    You can use the included search helps of the PREM collective search help by clicking Search Help function in the application toolbar. You can also add customer-specific search helps here. For a description of how to do this, see the Customizing for Personnel Management -> Personnel Administration -> Basic Settings -> . Ensure that you also generate the selection program using the DBPNPGMC report so that the search help actually exists in the PNPCE logical database. If you use a search help, the Dynamic Selections, Restrict by OrgStructure, and Selection ID functions are not available.
    Selection ID
    You can also restrict the number of personnel numbers to be selected using a predefined selection method called a Selection ID. For information on how to use and create selection IDs, see the Customizing activity under 'Personnel Management' -> 'Human Resources Information System' -> . How you  selection IDs is also described here. The selection IDs whose grouping is stored in the report category are available to you for selection on the PNPCE selection screen. When you select a selection ID, it is always performed. This happens either explicitly when you press the button (behind the selected selection ID), or implicitly when output starts (F8). If you use a selection ID, the Dynamic Selections, Restrict by OrgStructure, and Search Help functions are not available.
    Evaluation Period
    The PNPCE (and the PNP) differentiates between the data selection period and the person selection period. Both these periods are summarized in the term evaluation period. Whereas the person selection period affects the selection of personnel numbers, the data selection period controls the retrieval of data requested by the INFOTYPES statement. You can configure both separately on the selection screen by selecting an appropriate entry in each list box. Alternatively, you can set up both selection periods at the same time using a common list box. You can control which entries are in the list boxes (that is which evaluation intervals are supported) using the report category. The person selection period you have set up is taken into consideration when the personnel numbers are selected. Only the personnel numbers are selected that fulfill the selection conditions on at least one (key) date in the specified person selection period. All data records of the requested infotypes that are valid on at least one (key) date in the specified data selection period are retrieved by default for these personnel numbers. You can set up a different procedure using the RP_SET_DATA_INTERVAL, RP_SET_DATA_INTERVAL_INFTY, and RP_SET_DATA_INTERVAL_ALL macros. Retrieving data records for infotypes that were defined by the AS PERSON TABLE MODE P addition is an exception. In this case, all data records are retrieved independent of the data selection period.
    The payroll period should be considered as a special feature for the evaluation period. You can select either the current payroll period or another payroll period. You must enter the payroll area in both cases. The evaluation period is calculated from these specifications. This interval is used as evaluation period (as person selection period and as data selection period) for the further (internal) processing.
    The report can query the evaluation period used via the PN structure. The BEGDA and ENDDA contain the data selection period whereas BEGPS and ENDPS contain the person selection period. Inversely, the report can also set the data and person selection period explicitly. The report must also fill the relevant components of the PN structure at the START-OF-SELECTION event. This is only meaningful if the manual maintenance of the evaluation period was hidden using the report category.
    Communication Between Report and PNPCE
    The DBPNPCECOM include is an element of the PNPCE logical database. This is automatically included in each report that is based on PNPCE. The common part defined in this include means that the report and PNPCE have a common data area. This data area enables the data exchange for communication between the report and PNPCE. All switches that can be used by the report to control the process of PNPCE are defined here. The DBPNPCECOM include also contains a number of macros that PNPCE uses to make additional functions available to the report. Most of these macros were adopted by PNP and defined there in the DBPNPMAC include. Additional macros still exist in the TRMAC table, which has in the meanwhile become obsolete. Do not use these macros for any purpose. You can find all the macros defined in PNP that affect the functionality of the logical database in the DBPNPCECOM include. They have a slightly different spelling; underscore_ instead of hyphen-, for example RP_PROVIDE_FROM_LAST  instead of PROVIDE-FROM-LAST. Some of the TRMAC macros in the DBPNPCECOM include were redefined with the same spelling but without the functionality so that any incorrect use (of the TRMAC macros) leads to a syntax error and is therefore excluded.
    The following describes the functions made available by the switches and macros defined in the DBPNPCECOM include. For information about the exact syntax for calling a macro in view of its parameters and type specifications, see the definition of the macro in the DBPNPCECOM include.
    Evaluation Period in the PN Structure
    The PN structure contains information about the evaluation period for which the evaluation is started regardless of how this is specified on the selection screen. A report should access the fields of the PN structure only if it requires this information and should not access the PNPBEGDA, PNPENDDA, and other selection fields of the selection screen.
    The PN-BEGPS and PN-ENDPS fields contain the person selection period for which the personnel number selection was performed. The PN-BEGDA and PN-ENDDA fields contain the data selection period. If you have specified the evaluation period using a payroll period, PN-PABRP contains the payroll period, PN-PABRJ the payroll year, and PN-PERMO the period parameters. The payroll period and payroll year are also in PN-PAPER.
    The report can also fill the PN-BEGDA, PN-ENDDA, PN-BEGPS, and PN-ENDPS fields with values at the START-OF-SELECTION event and in doing so, specifies the evaluation period. In cases like this, it is not meaningful to have this setting option on the selection screen and it should therefore be hidden using the report category. In addition, the report must ensure that the values specified are valid since there is no longer a validation of these values.
    Setting the Data Selection Period: RP_SET_DATA_INTERVAL, RP_SET_DATA_INTERVAL_INFTY, RP_SET_DATA_INTERVAL_ALL
    The report uses the INFOTYPES statement to request infotype data records that are read and made available by PNPCE. The report can specify that it only requires data records that are valid in the specified period using the 'VALID FROM .. TO ..' addition. Unfortunately, you cannot use the 'VALID FROM .. TO ..' addition in most cases because it does not accept dynamic date specification. It only accepts constants. If you do not use the 'VALID FROM .. TO ..' addition, PNPCE returns all data records that are in the specified data selection period on the selection screen by default. If this is not required, the report can call the RP_SET_DATA_INTERVAL, RP_SET_DATA_INTERVAL_INFTY, and RP_SET_DATA_INTERVAL_ALL macros to restrict the infotype data records to a different validity period. The RP_SET_DATA_INTERVAL macro sets the validity period for an individual infotype whose name you specify in the first parameter. Do not confuse the name of the infotype, P0001 or PP0001 for example, with the number of the infotype 0001. You specify the validity period in the second and third parameters. You should use the RP_SET_DATA_INTERVAL_INFTY macro in the same way but instead of entering the name in the first parameter, enter the number of the infotype. Since the same infotype can be used several times (under different names) when you use the INFOTYPES additions 'AS PERSON TABLE' or 'NAME ...', this macro sets the validity period for all infotypes of the same number. In contrast, the RP_SET_DATA_INTERVAL_ALL macro only has the validity period as a parameter and sets this for all infotypes used.
    Setting the Mode of an Infotype: PNP_SET_INFTY_MODE_BY_NAME, PNP_SET_INFTY_MODE_BY_NUMBER
    The INFOTYPES statement can use the MODE addition to control whether the infotype should be processed and how this should proceed. If the addition is not used, this corresponds to a MODE Y and the PNPCE logical database reads the infotype and places it in the internal infotype table. MODE N enables the internal infotype table to be declared but no infotype data records are read by the PNPCE logical database. MODE P can only be used together with the 'AS PERSON TABLE' addition and causes all infotype data records of all personnel numbers of a person to be read at the GET PERSON event without authorization check or period restriction. The report can use the PNP_SET_INFTY_MODE_BY_NAME and PNP_SET_INFTY_MODE_BY_NUMBER macros to change the MODE specified by the INFOTYPES statement (dynamically) at runtime. The macros must be called at the INITIALIZATION or START-OF-SELECTION events. The PNP_SET_INFTY_MODE_BY_NAME macro sets the MODE for an individual infotype whose name you specify in the first parameter. Do not confuse the name of the infotype, P0001 or PP0001 for example, with the number of the infotype 0001 You should use the RP_SET_INFTY_MODE_BY_NUMBER macro in the same way but instead of entering the name in the first parameter, enter the number of the infotype. Since the same infotype can be used several times (under different names) when you use the INFOTYPES additions 'AS PERSON TABLE' or 'NAME ...', this macro sets the MODE for all infotypes of the same number.
    Reading Time Management Infotypes: RP_READ_ALL_TIME_ITY, RP_READ_ALL_PERSON_TIME_ITY
    Time management infotypes (2000-2999) often contain a large number of data records, particularly if positive recording is implemented. If a dataset that is too large is requested using the INFOTYPES statements, this can lead to performance problems or in an extreme case, to memory overflow. For this reason, there are the RP_READ_ALL_TIME_ITY and RP_READ_ALL_PERSON_TIME_ITY macros, which can be used to read time management data in a targeted manner. The time management infotypes are defined by the INFOTYPES statement with the MODE N addition. This enables the internal infotype table to be declared but no data is read (at the moment) by the PNPCE logical database. The report can then decide at the GET GROUP and GET PERAS events whether it wants to read the time management data and for which period. At the GET GROUP event, the report can call the RP_READ_ALL_PERSON_TIME_ITY macro to read all time management data on the personnel numbers of a person that should be processed. In other words, the time management data that is in the included ALL_PERNRS table of the GROUP structure. The data is then written to the infotypes that were declared by the INFOTYPES statement with the AS PERSON TABLE addition.
    However, at the GET PERAS event, the report can call the RP_READ_ALL_TIME_ITY macro to read the time management data on the current personnel number. In both cases, you must specify the period in which the data records should be valid when the macro is called. The PNP-SW-IGNORELOCKEDRECORDS switch is also taken account of in both cases and controls whether locked data records are read or not. In addition, an authorization check is performed for all data records. If no authorization exists for a data record, this data record is rejected (that is, it is not placed in the infotype table). If data records are rejected because of missing authorization, the PNP-SW-AUTH-SKIPPED-RECORD global switch is set to 1. This switch is otherwise set to 0.
    Locked Data Records: PNP-SW-IGNORELOCKEDRECORDS
    In HR master data maintenance, you can lock individual infotype data records. These data records are normally ignored during evaluations using PNPCE. If you set the PNP-SW-IGNORELOCKEDRECORDS switch to N (at the INITIALIZATION or START-OF-SELECTION events), the report can however instruct PNPCE to read locked data records too.
    Authorization Check: PNP_SW_SKIP_PERNR, PNP_GET_AUTH_SKIPPED_PERNRS
    The PNPCE logical database performs an authorization check for all infotype data records that are requested by the report using the INFOTYPES statement. If no authorization exists for even one individual data record of one of the infotypes used, processing of the personnel numbers is terminated by default. In PNP mode, this means that the GET PERAS event (for the personnel number) is skipped. The report is only aware of this if it then (if possible at the END-OF-SELECTION event) calls the PNP_GET_AUTH_SKIPPED_PERNRS macro, which returns a list of the skipped personnel numbers.
    In CE mode, the NO_AUTHORITY flag is set in the included ALL_PERNRS table at the GET GROUP event, which indicates to the report that no authorization exists. The following event, GET PERAS, is also not executed for this personnel number. As in PNP mode, the report can get a list of the personnel numbers for which no authorization exists using the PNP_GET_AUTH_SKIPPED_PERNRS macro.
    You can enter different settings using the PNP_SW_SKIP_PERNR switch. If you set this switch (at the INITIALIZATION or START-OF-SELECTION events) to N, no more personnel numbers (without authorization) are skipped. Only the data records for which no authorization exists are rejected (that is, not made available). The report has no way of knowing that data records are being withheld from it.
    Mass Access By Array-Fetch: PNPCE_ARRAY_FETCH_SIZE
    The infotype data records are not read for each personnel number individually but in a mass access for several personnel numbers simultaneously. This reduces the number of database accesses and performance can be considerably improved. You cannot read the infotype data records of all personnel numbers at once since this can lead to problems with memory space depending on the number of selected personnel numbers and existing data records. For this reason, the personnel numbers are segmented into blocks of a fixed size and the personnel numbers of a block are always read together. The size of the block is set to 100 by default (this means that the personnel numbers from 100 persons are processed at the same time). The report can change this setting using the PNPCE_ARRAY_FETCH_SIZE switch at the INITIALIZATION or START-OF-SELECTION event. Be very careful if you change this value. If the value is set too high, it can lead to a memory overflow. If the value is too low, performance is affected. You must choose a suitable value based on the number of requested infotypes and their expected datasets.
    Locking Persons/Personnel Numbers
    By default, the logical database does not lock any personnel numbers or persons. However, the report can request this. In CE mode, the report must set the PNPCE_ENQUEUE_PERSONS switch to X. This enables the LDB to set locks for all personnel numbers of a person. The person is regarded as locked and is processed further only if all personnel numbers have been successfully locked. Otherwise, they are skipped. It is the reports task to remove this lock. To do so, the report calls the PNPCE_DEQUEUE_PERSON macro by specifying the person ID. Persons that could not be locked and were skipped are logged by the logical database. After processing has finished, the report can query this list using the PNPCE_GET_ENQ_FAILED_PERSONS macro. However, not all persons are logged, only the first N persons. The report can find out how many this is exactly using the PNPCE_LOG_ENQ_FAILED_PERSONS switch. 1 means that all persons should be logged. If the report calls the PNPCE_GET_ENQ_FAILED_PERSONS macro, the total number of skipped persons is returned with the first N logged persons.
    In PNP mode, individual personnel numbers can be locked. The report (and PNP) must set the PNP-SW-ENQUEUPERNR switch to Y to enable this.  The report is here also responsible for unlocking the personnel numbers and can call the PNP_DEQUEUE_PERNR macro for this by specifying the personnel number. The report can get a list of the personnel numbers that could not be locked by calling the PNP_GET_ENQ_FAILED_PERNRS macro. Only the first N personnel numbers and the total number of skipped personnel numbers are returned. The number of personnel numbers that should be logged can be specified using the PNP_LOG_ENQ_FAILED_PERNRS switch. 1 means that all personnel numbers should be logged.
    Determining the First Data Record in the Period: RP_PROVIDE_FROM_FRST
    The RP_PROVIDE_FROM_FRST macro analyzes the infotype data records that were transferred in an internal table to the macro with regard to the specified period. It places the first data record that is valid in the specified period (the data record with the lowest ENDDA) in the header of the internal table. If no data record exists in the specified period, the PNP-SW-FOUND global switch is set to 0. Otherwise it has the value 1. If the infotype contains subtypes, you also need to specify the subtype for which the last valid data record should be determined. If you do not specify the subtype, the result is undefined. In addition, the data records of the internal table must be sorted according to primary key. The data records are sorted if the data records were determined by PNPCE logical database using the INFOTYPES statement. Analyze the implementation of the macro if the exact functions of the macro are unclear. If in doubt, do not use the macro. Instead implement a suitable solution for the report in question.
    Determining the Last Data Record in the Period: RP_PROVIDE_FROM_LAST
    The RP_PROVIDE_FROM_LAST macro analyzes the infotype data records that were transferred in an internal table to the macro with regard to the specified period. It places the last data record that is valid in the specified period (the data record with the highest ENDDA) in the header of the internal table. If no data record exists in the specified period, the PNP-SW-FOUND global switch is set to 0. Otherwise it has the value 1. If the infotype contains subtypes, you also need to specify the subtype for which the last valid data record should be determined. If you do not specify the subtype, the result is undefined. In addition, the data records of the internal table must be sorted according to primary key. The data records are sorted if the data records were determined by PNPCE logical database using the INFOTYPES statement. A special feature of infotypes with time constraint 3 in this case is that the data record with the highest ENDDA is not necessarily returned, but the first data record (if it exists) that is valid on the end date of the specified period. Analyze the implementation of the macro if the exact functions of the macro are unclear. If in doubt, do not use the macro. Instead implement a suitable solution for the report in question.
    Reading Infotypes: RP_READ_INFOTYPE
    The RP_READ_INFOTYPE macro reads the data records of an infotype for the specified personnel numbers that are valid in the specified period, and writes these to the internal table specified. This table must be completed correctly. If no data records exist in the specified period, the PNP-SW-FOUND global switch is set to 0. Otherwise it has the value 1. In addition, an authorization check is performed for all data records. If no authorization exists for a data record, this data record is rejected (that is, it is not placed in the internal table). If data records are rejected because of missing authorization, the PNP-SW-AUTH-SKIPPED-RECORD global switch is set to 1. This switch is otherwise set to 0. The PNP-SW-IGNORELOCKEDRECORDS switch is also taken account of when the data records are read and controls whether locked data records are read or not.
    Normally, infotypes are read using the HR_READ_INFOTYPE function module. The RP_READ_INFOTYPE macro can improve performance when the data records have already been read by PNPCE and are in the internal buffer. PNPCE only read the data records that were requested by the report using the INFOTYPES statement. In addition, the buffer is deleted again at the latest after 100 processed personnel numbers. If however the report requests the data records using an INFOTYPES statement, it is not particularly meaningful to request the data records again for the same personnel number using the RP_READ_INFOTYPE macro. The buffer is only useful when the data records are called for a different personnel number if these personnel numbers belong to the block of the 100 current buffered personnel numbers. Always weigh up the advantages of this macro against the consequences of its use for performance.
    Excluding Withdrawn Employees: RP_SEL_EIN_AUS_INIT
    If this macro is called at the INITIALIZATION event, only personnel numbers are selected that do not have the status withdrawn in the specified person selection period. From a technical point of view, the select option PNPSTAT2 (STAT2 from infotype 0000) is filled with '   0' for this. This is a default value for the selection condition displayed on the selection screen that the user can change or delete at a later date.
    Progress Indicator: PNPCE_NO_PROGRESS_INDICATOR, PNPCE_PROGRESS_BLOCK_SIZE
    The PNPCE logical database uses the standard technique of displaying processing progress (process indicator). If the report wants to set up its own progress indicator or does not want to have a progress indicator displayed, it can switch this indicator off by setting the PNPCE_NO_PROGRESS_INDICATOR switch to X. The PNPCE_PROGRESS_BLOCK_SIZE switch enables the report to control how often (that is, after how many processed persons) the progress indicator should be updated. If the progress indicator is updated too often, performance suffers.
    Payroll Grouping: PNPCE_GROUPING_FROM_PAYROLL
    If you set the switch to X, the grouping of personnel numbers (as returned at the GET GROUP event) should be performed on the basis of payroll data.
    Personnel Numbers Skipped Due to Error: PNP_GET_ERR_SKIPPED_PERNRS
    A special logic for determining data records is implemented in PNPCE for certain infotypes. This is performed using a function module (HR_COST_DISTRIBUTION_GET) for infotypes 0027 and 0266. In the case of an error, the function module can trigger an exception. PNPCE reacts to an exception by terminating processing of the personnel numbers for which the error occurred (that is, the PUT PERAS event is not triggered). If the report wants to know which personnel numbers were skipped due to this error, it can call the PNP_GET_ERR_SKIPPED_PERNRS macro.
    Comments
    Headers of Infotype Tables
    PNPCE fills the table body with infotypes defined by INFOTYPES. It does not fill headers. These are initialized. Therefore, it is not permitted to program headers. This is in part different in the PNP logical database. In certain cases, the header is also filled but in many cases it is not filled. Since this depends on various factors, which, in particular, cannot be traced or controlled by the report, you are also not permitted to program headers.
    Infotype Administration Table $RINFO$
    In the $RINFO$ table, infotypes are managed that the report defines using the INFOTYPES statement. It is defined in the DBPNPCECOM include so that the report also has access to this table. You are forbidden to manually modify this table for the purpose of changing infotype characteristics by the report. Instead, use the macros that enable you to set the infotype characteristics (set the MODE by PNP_SET_INFTY_MODE_BY_NAME and PNP_SET_INFTY_MODE_BY_NUMBER; set the validity period by RP_SET_DATA_INTERVAL, RP_SET_DATA_INTERVAL_INFTY, and RP_SET_DATA_INTERVAL_ALL).
    Starting a PNPCE Report Using Preselected Personnel Number Set/Person Set
    You can also start a PNPCE report using an externally predefined personnel number set. You must provide the PNPINDEX parameter with the relevant personnel number when you call the report using SUBMIT. Since, technically speaking, the select option for PNPINDEX is hidden, you must specify the personnel numbers in a RANGE structure that consists of SIGN, OPTION, and LOW. For each personnel number, SIGN must contain the value I, OPTION the value EQ, and LOW the personnel number. For SUBMIT, the range table should be transferred to PNPINDEX by the IN operator.
    Example:
    RANGES: pernr_index FOR pernr-pernr.
    CLEAR pernr_index.
    pernr_index-sign = 'I'.
    pernr_index-option = 'EQ'.
    pernr_index-low = '00000815'.
    APPEND pernr_index.
    SUBMIT pnpce_report WITH pnpindex IN pernr_index.
    If a set of personnel numbers is defined in this way, you cannot use the Dynamic Selections, Restrict by OrgStructure, Search Help, and Selection ID functions to (further) restrict the set of personnel numbers. However, the conditions entered for the selection fields of infotypes 0000 and 0001 are taken into account.
    Similarly, you can start a PNPCE report with a specified set of persons. You must provide the PNPPERID parameter with the relevant person IDs when you call the report using SUBMIT. Unlike PNPINDEX, PNPPERID is not a range but is an internal table whose row type is the PERSONID data element.
    Example:
    DATA: personid_index TYPE STANDARD TABLE OF personid.
    APPEND '00000815' TO personid_index.
    SUBMIT pnpce_rerpot WITH pnpperid = personid_index.
    If a set of persons is defined in this way, you cannot define a set of personnel numbers (using PNPINDEX) at the same time. Also in this case, you cannot use the Dynamic Selections, Restrict by OrgStructure, Search Help, and Selection ID functions to (further) restrict the set of personnel numbers.
    Using Several Selection Options Simultaneously
    In addition to selecting fields of infotypes 0000 and 0001 as described above, PNPCE offers six other options for selecting personnel numbers. They are selection using dynamic selections, using organizational structure, using search help, using selection ID, and by explicitly specifying a personnel number set in PNPINDEX or a person set in PNPPERID when you call the report. These six options exclude each other, that is you can only use one of these options at a time. Appropriate queries on the selection screen attempt to ensure this. It can happen in certain cases, however, that more than one of these functions is used (for example, when you call the PNPCE report by explicitly specifying a personnel number set in PNPINDEX as well as one of the variants to be used in which dynamic selections were also stored). In this case, only one function, which is the first function used, is taken into account with regard to the following sequence:
    1.     Dynamic Selections
    2.     Restrict by OrgStructure
    3.     Search Help
    4.     Selection ID
    5.     Explicit Specification or Personnel Numbers in PNPINDEX
    6.     Explicit Specification or Persons in PNPPERID
    The personnel number set found this way is always restricted further by the selection conditions specified in the 0000 and 0001 infotypes.
    Example
    PNP Mode (without functions for evaluating concurrent employment)
    TABLES: PERNR.
    NODES: PERAS.
    INFOTYPES: 0006 NAME P0006.
    GET PERAS.
    table P0006 is filled with infotype 0006 data of PERNR
    stored in PERAS-PERNR
      WRITE :/ PERAS-PERNR.
    CE Mode (with function for evaluating concurrent employment)
    TABLES: PERNR.
    NODES: PERSON, GROUP, PERAS.
    INFOTYPES: 0001 NAME ALL_0001 AS PERSON TABLE MODE P.
    INFOTYPES: 0001 NAME PP0001 AS PERSON TABLE.
    INFOTYPES: 0006 NAME P0006.
    GET PERSON.
    table ALL_0001 is filled with infotype 0001 data of all PERNRs
    stored in PERSON-ALL_PERNRS without authority check !!!
      WRITE :/ PERSON-OBJID.
    GET GROUP.
    table P0001 is filled with infotype 0001 data of all PERNRs
    stored in GROUP-ALL_PERNRS
      WRITE :/ GROUP-GROUPING_REASON, GROUP-GROUPING_VALUE.
    GET PERAS.
    table P0006 is filled with infotype 0006 data of PERNR
    stored in PERAS-PERNR
      WRITE :/ PERAS-PERNR.

  • The black "show shadow clipping" indicator not extinguishable.  What can be done?  I tried the obvious.  There is no evidence of clipping.

    The black "show shadow clipping" indicator not extinguishable. .  What can be done?  I tried the obvious.  There is no evidence of clipping.
    Lightroom version: 5.6 [974614]
    License type: Perpetual
    Operating system: Windows 7 Ultimate Edition
    Version: 6.1 [7601]
    Application architecture: x64
    System architecture: x64
    Logical processor count: 8
    Processor speed: 3.3 GHz
    Built-in memory: 16364.3 MB
    Real memory available to Lightroom: 16364.3 MB
    Real memory used by Lightroom: 1055.2 MB (6.4%)
    Virtual memory used by Lightroom: 1071.8 MB
    Memory cache size: 2.0 MB
    Maximum thread count used by Camera Raw: 4
    System DPI setting: 96 DPI
    Desktop composition enabled: No
    Displays: 1) 1920x1080, 2) 1920x1080
    Application folder: C:\Program Files\Adobe\Adobe Photoshop Lightroom 5.6
    Library Path: C:\Adobe Lightroom Catalogs\2014_05_31 (3).lrcat
    Settings Folder: C:\Users\XXXX\AppData\Roaming\Adobe\Lightroom
    Installed Plugins:
    1) Canon Tether Plugin
    2) Facebook
    Config.lua flags: None
    Adapter #1: Vendor : 1002
      Device : 6739
      Subsystem : 25201462
      Revision : 0
      Video Memory : 1003
    AudioDeviceIOBlockSize: 1024
    AudioDeviceName: Speakers / Headphones (IDT High Definition Audio CODEC)
    AudioDeviceNumberOfChannels: 2
    AudioDeviceSampleRate: 44100
    Build: Uninitialized
    CardID: 26425
    Direct2DEnabled: false
    GPUDevice: D3D
    MaxTexture2DSize: 8192
    OGLEnabled: true
    Renderer: AMD Radeon HD 6800 Series
    ShaderModel: 11.1
    Vendor: AMD
    VendorID: 4098
    Version: 1002:6739:25201462:0000

    First off, this image is not a raw image.  It is a compressed small-raw of some sort so Adobe's normal demosaicking algorithms are not being employed, and Adobe is having to reverse engineer R, G, B channels from Y, Cb, Cr channels, so something may be non-optimal this conversion.
    Secondly, at least with this non-raw Y, Cb, Cr image, there are some Y pixels that have zero value in the file, so no matter what you do, other than adjusting the bottom of the tone curve above zero, they will be clipped.
    It also seems that the clipping indicator triangles are not affected by the Detail settings so turning off any noise-reduction or sharpening is required show you which pixels the clipping triangle is keying off of.
    Here is your image opened in an RawDigger which is a raw analysis program that indicates the Y channel does have a minimum value of 0:
    Here is a screenshot of LR with a very small crop on the shadowed background area above the performers, with the Detail settings turned off--no noise reduction or sharpening, and the Toning settings as bright as possible, and in that small crop area, there are a few black pixels that are highlighted blue if I turn on the clipping indicator, so it's not surprising, that with this image, at least, the black clipping indicator doesn't turn off very easily.  In this side-by-side, they have the same settings, but the Before image is without the clipping indicator and the After image is with the clipping indicator engaged so you can see the 4 pixels that are 0 in the tiny cropped area:
    Here is a DNG of the settings as in the above LR screenshot, other than the embedded preview that appears to be the entire image not the tiny cropped area:
    https://dl.dropboxusercontent.com/u/9905000/Dab_143378_smallcrop_maxedtoning.dng

  • Setting final delivery indicator on scheduling agreements (ELIKZ)

    Hello ALL,
    Based on note 199749 SAP does not set the delivery complete indicator for scheduling agreements during goods receipt processing.   We're employing thousand line scheduling agreeements where new schedule items are added to the scheduling agreeement items via MRP.   When the delivery complete indicator is manually set MRP proposes requisitions instead of schedule lines which is our desired processing but we need the final delivery indicator to be automatically set.  Does anybody know the user exit to set this indicator during goods receipt processing including any other helpful information.
    Thanks so much for your time.

    Hello Walter,
    this should be possible in BADI 'MB_DOCUMENT_BADI' ,
    method MB_DOCUMENT_UPDATE.
    Regards Wolfgang

  • Indicator-powersave & throttle

    Thanks to some very useful advice here in the thread and a lot of time on google, this is shaping up into something worthwhile!
    indicator-powersave is a fork of indicator-cpufreq with additional controls for system-wide powersaving. It is not a detailed reporting tool like powertop (see throttle check), but enables more comprehensive powersaving than powertop checks for. It is not as multi-purpose as tlp but should be as effective for anything other than a Thinkpad and with a convenient, user-discretion menu to select options by mouse.
    The front end is an application indicator:
    The backend is a bash script which does it's best to manipulate runtime system settings (sysfs/procfs) rather than modify config files or employ external tools where possible: ENERGY_PERF_BIAS (x86_energy_perf_policy), HDD (hdparm), LAN (ethtool), WLAN (iw), and GPU (nvidia-settings) need optional, external tools. This script works without the indicator.
    /usr/bin/throttle
    #!/bin/bash
    while (( "$#" )); do
    #Find the number of physical cores (for hyperthreading control)
    CORES="$(grep "^core id" /proc/cpuinfo | sort -u | wc -l)"
    case "$1" in
    full|performance|cut|powersave)
    case "$1" in
    full|performance)
    GOVERNOR="performance"
    XPSTURBO="0"
    HYPERTHREADS="1"
    ENERGYPERF="0"
    LAPTOP="0"
    DIRTYWBC="500"
    NMIDOG="0" # Always off
    POLICY="max_performance"
    APM="255"
    AAM="254"
    CONTROL="on"
    AUTOSUSPEND="-1"
    POWERSAVE="0"
    CONTROLLER="N"
    WLPOWERSAVE="off"
    WOLA="g"
    WOLB="enabled"
    LEDBRIGHT="255"
    NVPM="1"
    cut|powersave)
    GOVERNOR="powersave"
    XPSTURBO="1"
    HYPERTHREADS="0"
    ENERGYPERF="15"
    LAPTOP="5"
    DIRTYWBC="1500"
    NMIDOG="0"
    POLICY="min_power"
    APM="1"
    AAM="128"
    CONTROL="auto"
    AUTOSUSPEND="1"
    POWERSAVE="1"
    CONTROLLER="Y"
    WLPOWERSAVE="on"
    WOLA="d"
    WOLB="disabled"
    LEDBRIGHT="0"
    NVPM="0"
    esac
    # CPU Governor
    for i in /sys/bus/cpu/drivers/processor/cpu*/cpufreq/scaling_governor; do [[ -f "${i}" ]] && \
    printf "${GOVERNOR}" > "${i}" & done &
    # Disable Intel P-State Turbo
    [[ -f /sys/devices/system/cpu/intel_pstate/no_turbo ]] && \
    printf "${XPSTURBO}" > /sys/devices/system/cpu/intel_pstate/no_turbo &
    # Hyperthreads
    for i in /sys/devices/system/cpu/cpu*/online; do [[ -f "${i}" ]] && \
    [[ "$(printf "${i}" | tr -cd [:digit:])" -ge "${CORES}" ]] && \
    printf "${HYPERTHREADS}" > "${i}" & done &
    wait # for cpus on/off
    # ENERGY_PERF_BIAS
    [[ -n "$(command -v x86_energy_perf_policy)" ]] && \
    x86_energy_perf_policy "${ENERGYPERF}" &
    # Virtual Memory (Swap)
    printf "${LAPTOP}" > /proc/sys/vm/laptop_mode &
    printf "${DIRTYWBC}" > /proc/sys/vm/dirty_writeback_centisecs &
    printf "${DIRTYWBC}" > /proc/sys/vm/dirty_expire_centisecs &
    # NMI watchdog
    [[ -f /proc/sys/kernel/watchdog ]] && \
    printf "${NMIDOG}" > /proc/sys/kernel/watchdog &
    # SATA link power management
    for i in /sys/class/scsi_host/host*/link_power_management_policy; do [[ -f "${i}" ]] && \
    printf "${POLICY}" > "${i}" & done &
    # Hard drives
    [[ -n "$(command -v hdparm)" ]] && \
    hdparm -qB "${APM}" -qM "${AAM}" /dev/[hs]d[a-z] 2> /dev/null &
    # Runtime power management for devices (Example with specific exception for Unifying transceiver)
    for i in /sys/{class/*,bus/*/devices}/*/power/control; do [[ -f "${i}" ]] && [[ \
    -z "$(ls "$(printf "${i}" | sed 's|power.*||g')"/*/ | grep "0003:046D:C52B")" ]] && \
    printf "${CONTROL}" > "${i}" & done &
    # USB Autosuspend (Example with exception for Unifying transceiver)
    for i in /sys/bus/usb/devices/*/power/autosuspend{,_delay_ms}; do [[ -f "${i}" ]] && [[ \
    -z "$(ls "$(printf "${i}" | sed 's|power.*||g')"/*/ | grep "0003:046D:C52B")" ]] && \
    echo "${AUTOSUSPEND}" > "${i}" & done &
    # Powersaving for modules
    for i in /sys/module/*/parameters/power_save; do \
    printf "${POWERSAVE}" > "${i}" & done &
    for i in /sys/module/*/parameters/power_save_controller; do \
    printf "${CONTROLLER}" > "${i}" & done &
    # Network powersaving
    for i in /sys/class/net/wl*; do [[ -d "${i}" ]] && \
    [[ -n "$(command -v iw)" ]] && \
    iw dev "$(printf "${i}" | sed 's/^.*wl/wl/')" set power_save "${WLPOWERSAVE}" 2> /dev/null & done &
    for i in /sys/class/net/e*; do [[ -d "${i}" ]] && \
    [[ -n "$(command -v ethtool)" ]] && \
    ethtool -s "$(printf "${i}" | sed 's/^.*e/e/')" wol "${WOLA}" 2> /dev/null & done &
    for i in /sys/class/net/*/device/power/wakeup; do [[ -f "${i}" ]] && \
    printf "${WOLB}" > "${i}" & done &
    # LEDs
    for i in /sys/class/leds/*/brightness; do [[ -f "${i}" ]] && \
    printf "${LEDBRIGHT}" > "${i}" & done &
    # Nvidia PowerMizer
    [[ -n "$(command -v nvidia-settings)" ]] && \
    DISPLAY=":0.0" nvidia-settings -a [gpu:0]/GPUPowerMizerMode="${NVPM}" > /dev/null &
    wait # Hey, let's stop! :) *stops* ... YAY! =D
    shift
    unset GOVERNOR XPSTURBO HYPERTHREADS ENERGYPERF LAPTOP DIRTYWBC NMIDOG \
    POLICY APM AAM CONTROL AUTOSUSPEND POWERSAVE CONTROLLER \
    WLPOWERSAVE WOLA WOLB LEDBRIGHT NVPM
    gov*)
    case "${1}" in \
    gov-full) GOVERNOR="performance" ;; \
    gov-cut) GOVERNOR="powersave" ;; esac
    [[ -z "${GOVERNOR}" ]] && \
    case "${2}" in \
    full|performance) GOVERNOR="performance"; SHIFT="2" ;; \
    cut|powersave) GOVERNOR="powersave"; SHIFT="2" ;; esac
    [[ -z "${GOVERNOR}" ]] && \
    printf "${0} gov {cut,full} - CPU Governor\n" || \
    for i in /sys/bus/cpu/drivers/processor/cpu*/cpufreq/scaling_governor; do [[ -f "${i}" ]] && \
    printf "${GOVERNOR}" > ${i} & done &
    [[ -n "${SHIFT}" ]] && shift "${SHIFT}" || shift
    wait
    unset GOVERNOR SHIFT
    turbo*)
    case "${1}" in \
    turbo-on) XPSTURBO="0" ;; \
    turbo-off) XPSTURBO="1" ;; esac
    [[ -z "${XPSTURBO}" ]] && \
    case "${2}" in \
    on|performance) XPSTURBO="0"; SHIFT="2" ;; \
    off|powersave) XPSTURBO="1"; SHIFT="2" ;; esac
    [[ -z "${XPSTURBO}" ]] && \
    printf "${0} turbo {on,off} - Intel P-State Turbo\n" || \
    [[ -f /sys/devices/system/cpu/intel_pstate/no_turbo ]] && \
    printf "${XPSTURBO}" > /sys/devices/system/cpu/intel_pstate/no_turbo &
    [[ -n "${SHIFT}" ]] && shift "${SHIFT}" || shift
    wait
    unset XPSTURBO SHIFT
    ht*)
    case "${1}" in \
    ht-on) HYPERTHREADS="1" ;; \
    ht-off) HYPERTHREADS="0" ;; esac
    [[ -z "${HYPERTHREADS}" ]] && \
    case "${2}" in \
    on|performance) HYPERTHREADS="1"; SHIFT="2" ;; \
    off|powersave) HYPERTHREADS="0"; SHIFT="2" ;; esac
    [[ -z "${HYPERTHREADS}" ]] && \
    printf "${0} ht {on,off} - Hyperthreads\n" || \
    for i in /sys/devices/system/cpu/cpu*/online; do [[ -f "${i}" ]] && \
    [[ "$(printf "${i}" | tr -cd [:digit:])" -ge "${CORES}" ]] && \
    printf "${HYPERTHREADS}" > "${i}" & done &
    [[ -n "${SHIFT}" ]] && shift "${SHIFT}" || shift
    wait
    unset HYPERTHREADS SHIFT
    gpu*)
    case "${1}" in \
    gpu-full) NVPM="1" ;; \
    gpu-cut) NVPM="0" ;; esac
    [[ -z "${NVPM}" ]] && \
    case "${2}" in \
    full|performance) NVPM="1"; SHIFT="2" ;; \
    cut|powersave) NVPM="0"; SHIFT="2" ;; esac
    [[ -z "${NVPM}" ]] && \
    printf "${0} gpu {cut,full} - GPU runtime powersaving (only Nvidia ATM)\n" || \
    [[ -z "$(command -v nvidia-settings)" ]] && \
    printf "nvidia-settings not found; only nvidia currently supported" || \
    DISPLAY=":0.0" nvidia-settings -a [gpu:0]/GPUPowerMizerMode="${NVPM}" > /dev/null &
    [[ -n "${SHIFT}" ]] && shift "${SHIFT}" || shift
    wait
    unset NVPM SHIFT
    check)
    printf "\nCPU Governor\n/sys/bus/cpu/drivers/processor/cpu*/cpufreq/scaling_governor\n"
    for i in /sys/bus/cpu/drivers/processor/cpu*/cpufreq/scaling_governor; do [[ -f "${i}" ]] && \
    printf "${i}\n$(cat ${i})\n"; done | sed 's|/sys/bus/cpu/drivers/processor/||g; s|/.*||g; N;s|\n|\t|'
    [[ -f /sys/devices/system/cpu/intel_pstate/no_turbo ]] && \
    printf "\nDisable Intel P-State Turbo\n/sys/devices/system/cpu/intel_pstate/no_turbo\n"; \
    printf "no_turbo\n$(cat /sys/devices/system/cpu/intel_pstate/no_turbo)\n" | sed 'N;s|\n|\t|'
    printf "\nHyperthreads\n/sys/devices/system/cpu/cpu*/online\n"
    for i in /sys/devices/system/cpu/cpu*/online; do [[ -f "${i}" ]] && \
    [[ $(printf "${i}" | tr -cd [:digit:]) -ge "$CORES" ]] && \
    printf "${i}\n$(cat ${i})\n"; done | sed 's|/sys/devices/system/cpu/||g; s|/.*||g; N;s|\n|\t|'
    [[ -z "$(command -v x86_energy_perf_policy)" ]] && \
    printf "\nEnergy Perf Bias\n" && \
    x86_energy_perf_policy -r #SUID
    printf "\nVirtual Memory (Swap)\n/proc/sys/vm/\n"
    printf "laptop_mode\t$(cat /proc/sys/vm/laptop_mode)\n"
    printf "dirty_writeback_centisecs\t$(cat /proc/sys/vm/dirty_writeback_centisecs)\n"
    printf "dirty_expire_centisecs\t$(cat /proc/sys/vm/dirty_expire_centisecs)\n"
    [[ -f /proc/sys/kernel/watchdog ]] && \
    printf "\nNMI watchdog\n" && \
    printf "/proc/sys/kernel/watchdog\t$(cat /proc/sys/kernel/watchdog)\n"
    printf "\nSATA link power management\n/sys/class/scsi_host/host*/link_power_management_policy\n"
    for i in /sys/class/scsi_host/host*/link_power_management_policy; do [[ -f "${i}" ]] && \
    printf "${i}\n$(cat ${i})\n"; done | sed 's|/sys/class/scsi_host/||g; s|/.*||g; N;s|\n|\t|'
    [[ -n "$(command -v hdparm)" ]] && \
    printf "\nHard drives\n/dev/[hs]d[a-z]\n" && \
    hdparm -B -M /dev/[hs]d[a-z] 2> /dev/null | sed 'N;s|\n||g; s|/dev/||g; s|\t| |g;' #SUID
    printf "\nRuntime power management\n/sys/{class,bus}/*/{*,devices/*}/power/control\n"
    for i in /sys/{class,bus}/*/{*,devices/*}/power/control; do [[ -f "${i}" ]] && \
    printf "${i}\n$(cat ${i})\n"; done | sed 's|/sys/class/||g; s|/sys/bus/||g; s|/devices||g; s|/power/control||g; N;s|\n|\t|'
    printf "\nUSB Autosuspend (may disable some older devices!)\n/sys/bus/usb/devices/*/power/autosuspend{,_delay_ms}\n"
    for i in /sys/bus/usb/devices/*/power/autosuspend{,_delay_ms}; do [[ -f "${i}" ]] && \
    printf "${i}\n$(cat ${i})\n"; done | sed 's|/sys/bus/usb/devices/||g; s|/.*||g; N;s|\n|\t|'
    printf "\nPower saving for modules\n/sys/module/*/parameters/power_save{,_controller}\n"
    for i in /sys/module/*/parameters/power_save{,_controller}; do [[ -f "${i}" ]] && \
    printf "${i}\n$(cat ${i})\n"; done | sed 's|/sys/module/||g; s|/parameters/.*||g; s|/.*||g; N;s|\n|\t|'
    printf "\nNetwork device powersaving\n/sys/class/net/{wl*,e*,*/device/power/wakeup}\n";
    [[ -n "$(command -v iw)" ]] && \
    for i in /sys/class/net/wl*; do [[ -d "${i}" ]] && \
    printf "${i}\n$(iw dev $(printf ${i} | sed 's/^.*wl/wl/') get power_save)"; done | sed 's|^\t| |g;s|/sys/class/net/||g; s|/.*||g'
    [[ -n "$(command -v ethtool)" ]] && \
    for i in /sys/class/net/e*; do [[ -d "${i}" ]] && \
    printf "${i}\n$(ethtool $(printf ${i} | sed 's/^.*e/e/') | grep Wake-on)"; done | sed 's|^\t| |g;s|/sys/class/net/||g; s|/.*||g'
    for i in /sys/class/net/*/device/power/wakeup; do [[ -f "${i}" ]] && \
    printf "${i}\n$(cat ${i})\n"; done | sed 's|/sys/class/net/||g; s|/device/power/wakeup||g; s|/.*||g; N;s|\n|\t|'
    printf "\nLEDs\n/sys/class/leds/*/brightness\n"
    for i in /sys/class/leds/*/brightness; do [[ -f "${i}" ]] && \
    printf "${i}\n$(cat ${i})\n"; done | sed 's|/sys/class/leds/||g; s|/brightness||g; s|/.*||g; N;s|\n|\t|'
    [[ -n "$(command -v nvidia-settings)" ]] && \
    printf "\nNvidia PowerMizer\n" && \
    DISPLAY=":0.0" nvidia-settings -q [gpu:0]/GPUPowerMizerMode | grep "Attribute" | sed 's|.*\[||g;s|\]):||g;s| |\t|g;s|\.$||g'
    shift
    *|help)
    [[ ! "${1}" == "help" ]] && \
    printf "Invalid input: $@\n"
    printf "\nRuntime power management:\n"
    printf "${0} {cut,full} - system-wide runtime powersaving\n"
    printf "${0} check - inspect runtime powersaving\n"
    printf "\nExtras:\n"
    printf "${0} gov {cut,full} - CPU Governor\n"
    printf "${0} turbo {on,off} - Intel P-State Turbo\n"
    printf "${0} ht {on,off} - Hyperthreads\n"
    printf "${0} gpu {cut,full} - GPU runtime powersaving (only Nvidia ATM)\n"
    printf "\nOptions can take {performace,powersave} and are stackable:\n"
    printf "\n${0} powersave gov full turbo on gpu full ht on check\n"
    exit
    esac
    done
    For maximum effectivenes, it's best to apply the settings to new devices immediately with udev. Not all of the powersaving options are accessible from udev directly. These rules enable most of the powersaving settings on boot and for all newly connected devices. I'm not quite satisfied with this, so it isn't currently packaged with indicator-powersave.
    /etc/udev/rules.d/runtime-pm.rules
    ## Whitelisted Actions
    ACTION!="add", GOTO="runtime_pm_rules_end"
    ## Blacklisted Devices (USB Keyboard/Mouse, etc.)
    # Logitec Unifying Reciever (occasionally disabled ?)
    ATTR{idVendor}=="046d", ATTR{idProduct}=="c52b", GOTO="runtime_pm_rules_end"
    # Standard Microsystems Corp. 2 Port Hub (doesn't charge with runtime pm ?)
    ATTR{idVendor}=="0424", ATTR{idProduct}=="a700", GOTO="runtime_pm_rules_end"
    # Charge Sixaxis/Dualshock 3 (disconnect or charge too slowly with runtime pm ?)
    ATTR{idVendor}=="054c", ATTR{idProduct}=="0268", GOTO="runtime_pm_rules_end"
    # Hard disk power saving
    SUBSYSTEM=="scsi_host", KERNEL=="host*", ATTR{link_power_management_policy}="min_power"
    KERNEL=="[hs]d[a-z]", ATTR{queue/rotational}=="1", RUN+="/usr/bin/hdparm -B 1 -M 128 /dev/%k"
    # Various subsystems runtime power management
    SUBSYSTEMS=="*", ATTR{power/control}=="on", ATTR{power/control}="auto"
    # USB autosuspend devices after 1 sec (may disable some old devices!)
    SUBSYSTEM=="usb", TEST=="power/autosuspend", ATTR{power/autosuspend}="1"
    SUBSYSTEM=="usb", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="1"
    # Various subsystems power saving
    SUBSYSTEMS=="*", TEST=="parameters/power_save", ATTR{parameters/power_save}="1"
    SUBSYSTEMS=="*", ATTR{parameters/power_save_controller}=="N", ATTR{parameters/power_save_controller}="Y"
    # D3 Cold
    DRIVER=="*", ATTR{d3cold_allowed}=="0", ATTR{d3cold_allowed}="1"
    # Network Powersaving
    SUBSYSTEM=="net", KERNEL=="wl*", RUN+="/usr/bin/iw dev %k set power_save on"
    SUBSYSTEM=="net", KERNEL=="e*", RUN+="/usr/sbin/ethtool -s %k wol d"
    SUBSYSTEM=="net", TEST=="device/power/wakeup", ATTR{device/power/wakeup}="disabled"
    # Reduce LED Brightness
    SUBSYSTEM=="leds", TEST=="brightness", ATTR{brightness}="0"
    # Exit
    LABEL="runtime_pm_rules_end"
    Settings that require modifying unique configuration files and on/off only switches have been intentionally omitted.
    Settings for proprietary and OEM devices are being added as needed (on the hardware I have; open to suggestions for more!).
    ::UPDATE::
    Massive under-the-hood improvements for throttle:
    -All external tools are now optional; missing tools will be skipped over.
    -Option stacking works as advertised (among other code improvements).
    -Better option style: "option setting" eg "ht on" The old style still works too, ie "ht-on" as still used by indicator-powersave, and all options can take {performance,powersave}.
    Throttle cut systemd service: throttle-cut.service (disabled by default)
    indicator-powersave's "GPU Throttle" menu still does not work for no logical reason. throttle gpu {full,cut} works.
    Last edited by quequotion (2015-05-10 04:55:12)

    ooo wrote:you can use udev rules, sysctl.d, tmpfiles.d and/or modprobe.d to enable all of those settings. Then you wouldn't need to write any additional systemd services.
    Thanks! This will be best for making sure the system starts up in low power mode (udev rules probably take effect earlier than my systemd service would). Still need to work on a way to toggle all of them on and off. Something like "systemctl start/stop runtime-pm"... Maybe I can have it toggle the powersave mode through udev?
    Then use a script if you need to disable some of the settings to maximize performance when needed.
    or you can write systemd service that simply runs the powersaving script.
    This may be what I'm looking for.
    you can disable nmi watchdog via sysctl or kernel command line
    These days I compile the kernel without watchdog support, but a good idea no less.
    There are also some additional power saving possibilities for your HD, although they may not be best suited for desktop hard drives.
    I have four SATA II drives in a 2TB RAID:0 array... if they have powersaving options I'll give them a shot.
    Also, PowerTOP HTML report:
    <!DOCTYPE html>
    <html lang='en'>
    <head>
    <title>PowerTOP report</title>
    <meta http-equiv='content-type' content='text/html;charset=utf-8'>
    <script type='text/javascript'>
    var powertop = {
    blocks: {
    summary: 'Summary',
    cpuidle: 'CPU Idle',
    cpufreq: 'CPU Frequency',
    software: 'Software Info',
    devinfo: 'Device Info',
    tuning: 'Tuning',
    ahci: 'AHCI'
    cadd: function(idx, c){
    var el = document.getElementById(idx);
    if (el) {
    var cn = el.className;
    if (cn.indexOf(c) != -1)
    return;
    cn += ' ' + c;
    el.className = cn;
    crm: function(id, c){
    var el = document.getElementById(id);
    if (el) {
    var cn = el.className
    while (cn.indexOf(' ' + c) != -1)
    cn = cn.replace(' ' + c,'');
    el.className = cn;
    newbutton: function(id, txt) {
    var x = document.createElement('div');
    x.id = id + '_button';
    x.className = 'nav_button';
    x.textContent = txt;
    x.innerText = txt;
    x.onclick = function() { powertop.toggle(id); };
    return x;
    setupbuttons: function() {
    var t = document.getElementById('main_menu');
    if (t) {
    for (var b in powertop.blocks) {
    t.appendChild(powertop.newbutton(b, powertop.blocks[b]));
    t.appendChild(powertop.newbutton('all', 'All'));
    toggle: function(b) {
    powertop.baseall();
    if (b == 'all') {
    for (var c in powertop.blocks) {
    powertop.crm(c, 'hide');
    } else {
    powertop.crm(b, 'hide');
    powertop.cadd(b + '_button', 'pressed');
    baseall: function() {
    for (var b in powertop.blocks) {
    powertop.cadd(b, 'hide');
    powertop.crm(b + '_button', 'pressed');
    powertop.cadd('all', 'hide');
    powertop.crm('all_button', 'pressed');
    onload: function() {
    powertop.setupbuttons();
    powertop.toggle('summary');
    </script>
    <style type='text/css'>
    /* General CSS */
    margin:0px;
    padding:0px;
    body {
    background-color: #eee; /* Background color */
    color: #222; /* Font color */
    font-family: Helvetica;
    font-size: 14px;
    #main_container{
    width: 960px;
    margin: 2px auto;
    /* Top logo & system table css */
    #main_header{
    min-width: 960px;
    display:block;
    img.pwtop_logo{
    float:left;
    height:40%;
    width: 40%;
    padding:20px;
    .sys_info
    float: left;
    height:116px;
    width:450px;
    font-size: 12px;
    display: inline;
    position relative;
    text-align: left;
    th{
    text-align: left;
    /* CSS Main Content */
    .content_title
    color: #296629;
    padding:0px;
    margin:2px;
    #chart_div{
    float: left;
    .small
    font-size: 10px;
    table.emphasis2
    font-size: 13px;
    max-width:95%;
    th.emph_title {
    padding:5px;
    tr.emph1:nth-child(odd) {
    background: #ffffff;
    tr.emph1:nth-child(even) {
    background: #ebebeb;
    tr.tune:nth-child(odd) {
    background: #fffcfc;
    tr.tune:nth-child(even) {
    background: #fff0f0;
    td.no_wrap:first-child {
    white-space:nowrap;
    .side_by_side_left{
    float:left;
    .side_by_side_right{
    float:right;
    #device{
    display: inline-block;
    .clear_block{
    clear:both;
    td.package{
    background-color: #e0ddfa; /*purple*/
    td.core{
    background-color: #d1ddff; /*ccebff; /*blue*/
    td.cpu{
    background-color: #ffffeb; /* yellow */
    th.title{
    text-align: center;
    /*border-bottom: 1px solid #666;*/
    li.summary_list
    display: inline;
    padding: 5px;
    background-color: #f6f6f9;
    font-size: 12px;
    /* main menu css*/
    #main_menu {
    display: inline-block;
    font-weight: bold;
    padding: 5px 0;
    text-align: center;
    background-image: -webkit-gradient(linear, left top, left bottom,
    from(#aaa), to(#eee));
    background: -moz-linear-gradient(top, #aaa, #eee);
    #main_menu div {
    font-size: 12px;
    font-weight: bold;
    color: white;
    #main_menu div.nav_button {
    margin: 0 0.2em;
    display: inline;
    cursor: pointer;
    color: #223232;
    font-size: 13px;
    font-weight: bold;
    padding: 5px;
    text-align: center;
    text-decoration: none;
    div.pressed {
    border: -webkit-gradient(linear, left top, left bottom,
    from(#b2ffb2), to(#e0ffe0));
    border-width:0px 8px 0px 8px;
    background: #999;
    background-image: -webkit-gradient(linear, left top, left bottom,
    from(#b2ffb2), to(#e0ffe0));
    background: -moz-linear-gradient(top, #b2ffb2, #e0ffe0);
    div.hide {
    display: none;
    </style>
    </head>
    <body onload='powertop.onload();'>
    <div id="main_container">
    <header id="main_header">
    <img alt="PowerTop" class="pwtop_logo" src="./PowerTop.png"><div class="sys_info">
    <h2 class="content_title"> System Information </h2>
    <table class="emphasis1">
    <tr> <th class="table_sysinfo"> PowerTOP Version </th> <td > v2.6 </td> </tr>
    <tr> <th class="table_sysinfo"> Kernel Version </th> <td > Linux version 3.13.6-2-ck </td> </tr>
    <tr> <th class="table_sysinfo"> System Name </th> <td > ASRockZ68 Extreme4 Gen3To Be Filled By O.E.M. </td> </tr>
    <tr> <th class="table_sysinfo"> CPU Information </th> <td > Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz </td> </tr>
    <tr> <th class="table_sysinfo"> OS Information </th> <td > Arch Linux </td> </tr>
    </table>
    </div>
    </header>
    <br/><div id="main_menu"> </div>
    <div><br/> <ul>
    <li class="summary_list"> <b> Target: </b> 1 units/s </li><li class="summary_list"> <b> System: </b> 845.8 wakeup/s </li><li class="summary_list"> <b> CPU: </b> 37.8% usage </li><li class="summary_list"> <b> GPU: </b> 0 ops/s </li><li class="summary_list"> <b> GFX: </b> 226.6 wakeups/s </li><li class="summary_list"> <b> VFS: </b> 0 ops/s </li></ul> </div> <br />
    <div id="summary">
    <h2 class="content_title"> Top 10 Power Consumers </h2>
    <table class="emphasis2">
    <tr class="emph1"> <th class="emph_title"> Usage </th> <th class="emph_title"> Events/s </th> <th class="emph_title"> Category </th> <th class="emph_title"> Description </th> </tr>
    <tr class="emph1"> <td > 33.4% </td> <td > 332.5 </td> <td > Process </td> <td > /usr/bin/vlc --started-from-file </td> </tr>
    <tr class="emph1"> <td > 0.9% </td> <td > 189.6 </td> <td > Process </td> <td > /usr/lib/firefox/firefox </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > </td> <td > Device </td> <td > Audio codec hwC0D0: Realtek </td> </tr>
    <tr class="emph1"> <td > 0.1% </td> <td > 83.1 </td> <td > Timer </td> <td > tick_sched_timer </td> </tr>
    <tr class="emph1"> <td > 0.1% </td> <td > 57.6 </td> <td > Process </td> <td > compton --dbus </td> </tr>
    <tr class="emph1"> <td > 0.1% </td> <td > 56.3 </td> <td > Timer </td> <td > hrtimer_wakeup </td> </tr>
    <tr class="emph1"> <td > 0.9% </td> <td > 47.2 </td> <td > Process </td> <td > /usr/bin/pulseaudio --start </td> </tr>
    <tr class="emph1"> <td > 0.3% </td> <td > 27.2 </td> <td > Interrupt </td> <td > [6] tasklet(softirq) </td> </tr>
    <tr class="emph1"> <td > 0.0% </td> <td > 8.9 </td> <td > Interrupt </td> <td > [58] snd_hda_intel </td> </tr>
    <tr class="emph1"> <td > 0.1% </td> <td > 8.1 </td> <td > kWork </td> <td > os_execute_work_item </td> </tr>
    </table>
    </div>
    <div class="clear_block" id="cpuidle">
    <h2 class="content_title"> Processor Idle State Report </h2>
    <table class="emphasis2 side_by_side_left">
    <tr> <th class="title"> Package </th> <th class="title"> 0 </th> </tr>
    <tr> <td class="package"> &nbsp; </td> <td class="package"> &nbsp; </td> </tr>
    <tr> <td class="package"> &nbsp; </td> <td class="package"> &nbsp; </td> </tr>
    <tr> <td class="package"> &nbsp; </td> <td class="package"> &nbsp; </td> </tr>
    <tr> <td class="package"> C2 (pc2) </td> <td class="package"> 0.0% </td> </tr>
    <tr> <td class="package"> C3 (pc3) </td> <td class="package"> 0.0% </td> </tr>
    <tr> <td class="package"> C6 (pc6) </td> <td class="package"> 0.0% </td> </tr>
    <tr> <td class="package"> C7 (pc7) </td> <td class="package"> 0.0% </td> </tr>
    </table>
    <table class="emphasis2 side_by_side_left">
    <tr> <th class="title"> </th> <th class="title"> Core 0 </th> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> C3 (cc3) </td> <td class="core"> 2.4% </td> </tr>
    <tr> <td class="core"> C6 (cc6) </td> <td class="core"> 61.3% </td> </tr>
    <tr> <td class="core"> C7 (cc7) </td> <td class="core"> 0.0% </td> </tr>
    <tr> <th class="title"> </th> <th class="title"> Core 1 </th> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> C3 (cc3) </td> <td class="core"> 1.1% </td> </tr>
    <tr> <td class="core"> C6 (cc6) </td> <td class="core"> 54.1% </td> </tr>
    <tr> <td class="core"> C7 (cc7) </td> <td class="core"> 0.0% </td> </tr>
    <tr> <th class="title"> </th> <th class="title"> Core 2 </th> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> C3 (cc3) </td> <td class="core"> 2.2% </td> </tr>
    <tr> <td class="core"> C6 (cc6) </td> <td class="core"> 76.9% </td> </tr>
    <tr> <td class="core"> C7 (cc7) </td> <td class="core"> 0.0% </td> </tr>
    <tr> <th class="title"> </th> <th class="title"> Core 3 </th> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> C3 (cc3) </td> <td class="core"> 1.8% </td> </tr>
    <tr> <td class="core"> C6 (cc6) </td> <td class="core"> 85.9% </td> </tr>
    <tr> <td class="core"> C7 (cc7) </td> <td class="core"> 0.0% </td> </tr>
    </table>
    <table class="emphasis2 side_by_side_left">
    <tr> <th class="title"> &nbsp; </th> <th class="title"> CPU </th> <th class="title"> 0 </th> <th class="title"> CPU </th> <th class="title"> 4 </th> </tr>
    <tr> <th class="title"> C0 active </th> <td class="cpu"> 25.1% </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> 9.2% </td> <td class="cpu"> &nbsp; </td> </tr>
    <tr> <th class="title"> POLL </th> <td class="cpu"> 0.0% </td> <td class="cpu"> 0.0 ms </td> <td class="cpu"> 0.0% </td> <td class="cpu"> 0.0 ms </td> </tr>
    <tr> <th class="title"> C1E-SNB </th> <td class="cpu"> 6.6% </td> <td class="cpu"> 1.1 ms </td> <td class="cpu"> 0.9% </td> <td class="cpu"> 1.3 ms </td> </tr>
    <tr> <th class="title"> </th> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> </tr>
    <tr> <th class="title"> C3-SNB </th> <td class="cpu"> 1.6% </td> <td class="cpu"> 0.7 ms </td> <td class="cpu"> 0.2% </td> <td class="cpu"> 0.8 ms </td> </tr>
    <tr> <th class="title"> C6-SNB </th> <td class="cpu"> 67.9% </td> <td class="cpu"> 2.0 ms </td> <td class="cpu"> 89.1% </td> <td class="cpu"> 10.5 ms </td> </tr>
    <tr> <th class="title"> </th> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> </tr>
    <tr> <th class="title"> &nbsp; </th> <th class="title"> CPU </th> <th class="title"> 1 </th> <th class="title"> CPU </th> <th class="title"> 5 </th> </tr>
    <tr> <th class="title"> C0 active </th> <td class="cpu"> 25.4% </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> 8.1% </td> <td class="cpu"> &nbsp; </td> </tr>
    <tr> <th class="title"> POLL </th> <td class="cpu"> 0.0% </td> <td class="cpu"> 0.0 ms </td> <td class="cpu"> 0.0% </td> <td class="cpu"> 0.0 ms </td> </tr>
    <tr> <th class="title"> C1E-SNB </th> <td class="cpu"> 9.8% </td> <td class="cpu"> 2.0 ms </td> <td class="cpu"> 3.4% </td> <td class="cpu"> 5.5 ms </td> </tr>
    <tr> <th class="title"> </th> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> </tr>
    <tr> <th class="title"> C3-SNB </th> <td class="cpu"> 0.9% </td> <td class="cpu"> 0.6 ms </td> <td class="cpu"> 0.1% </td> <td class="cpu"> 0.5 ms </td> </tr>
    <tr> <th class="title"> C6-SNB </th> <td class="cpu"> 59.8% </td> <td class="cpu"> 2.1 ms </td> <td class="cpu"> 88.9% </td> <td class="cpu"> 13.5 ms </td> </tr>
    <tr> <th class="title"> </th> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> </tr>
    <tr> <th class="title"> &nbsp; </th> <th class="title"> CPU </th> <th class="title"> 2 </th> <th class="title"> CPU </th> <th class="title"> 6 </th> </tr>
    <tr> <th class="title"> C0 active </th> <td class="cpu"> 15.4% </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> 4.6% </td> <td class="cpu"> &nbsp; </td> </tr>
    <tr> <th class="title"> POLL </th> <td class="cpu"> 0.0% </td> <td class="cpu"> 0.0 ms </td> <td class="cpu"> 0.0% </td> <td class="cpu"> 0.0 ms </td> </tr>
    <tr> <th class="title"> C1E-SNB </th> <td class="cpu"> 1.8% </td> <td class="cpu"> 1.0 ms </td> <td class="cpu"> 0.4% </td> <td class="cpu"> 1.1 ms </td> </tr>
    <tr> <th class="title"> </th> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> </tr>
    <tr> <th class="title"> C3-SNB </th> <td class="cpu"> 0.7% </td> <td class="cpu"> 0.7 ms </td> <td class="cpu"> 0.7% </td> <td class="cpu"> 13.5 ms </td> </tr>
    <tr> <th class="title"> C6-SNB </th> <td class="cpu"> 82.7% </td> <td class="cpu"> 4.0 ms </td> <td class="cpu"> 92.5% </td> <td class="cpu"> 20.9 ms </td> </tr>
    <tr> <th class="title"> </th> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> </tr>
    <tr> <th class="title"> &nbsp; </th> <th class="title"> CPU </th> <th class="title"> 3 </th> <th class="title"> CPU </th> <th class="title"> 7 </th> </tr>
    <tr> <th class="title"> C0 active </th> <td class="cpu"> 8.7% </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> 2.5% </td> <td class="cpu"> &nbsp; </td> </tr>
    <tr> <th class="title"> POLL </th> <td class="cpu"> 0.0% </td> <td class="cpu"> 0.0 ms </td> <td class="cpu"> 0.0% </td> <td class="cpu"> 0.0 ms </td> </tr>
    <tr> <th class="title"> C1E-SNB </th> <td class="cpu"> 0.8% </td> <td class="cpu"> 0.8 ms </td> <td class="cpu"> 0.2% </td> <td class="cpu"> 1.4 ms </td> </tr>
    <tr> <th class="title"> </th> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> </tr>
    <tr> <th class="title"> C3-SNB </th> <td class="cpu"> 0.8% </td> <td class="cpu"> 1.0 ms </td> <td class="cpu"> 0.2% </td> <td class="cpu"> 8.6 ms </td> </tr>
    <tr> <th class="title"> C6-SNB </th> <td class="cpu"> 88.2% </td> <td class="cpu"> 7.6 ms </td> <td class="cpu"> 97.8% </td> <td class="cpu"> 28.3 ms </td> </tr>
    <tr> <th class="title"> </th> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> <td class="cpu"> &nbsp; </td> </tr>
    </table>
    </div>
    <div class="clear_block" id="cpufreq">
    <h2 class="content_title"> Processor Frequency Report </h2>
    <table class="emphasis2 side_by_side_left">
    <tr> <th class="title"> Package </th> <th class="title"> 0 </th> </tr>
    <tr> <td class="package"> &nbsp; </td> <td class="package"> &nbsp; </td> </tr>
    <tr> <td class="package"> Idle </td> <td class="package"> 100.0% </td> </tr>
    </table>
    <table class="emphasis2 side_by_side_left">
    <tr> <th class="title"> </th> <th class="title"> Core 0 </th> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> Idle </td> <td class="core"> 100.0% </td> </tr>
    <tr> <th class="title"> </th> <th class="title"> Core 1 </th> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> Idle </td> <td class="core"> 100.0% </td> </tr>
    <tr> <th class="title"> </th> <th class="title"> Core 2 </th> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> Idle </td> <td class="core"> 100.0% </td> </tr>
    <tr> <th class="title"> </th> <th class="title"> Core 3 </th> </tr>
    <tr> <td class="core"> &nbsp; </td> <td class="core"> &nbsp; </td> </tr>
    <tr> <td class="core"> Idle </td> <td class="core"> 100.0% </td> </tr>
    </table>
    <table class="emphasis2 side_by_side_left">
    <tr> <th class="title"> &nbsp; </th> <th class="title"> CPU 0 </th> <th class="title"> CPU 4 </th> </tr>
    <tr> <th class="title"> Actual </th> <td class="cpu"> 4.7 GHz </td> <td class="cpu"> 4.8 GHz </td> </tr>
    <tr> <th class="title"> Idle </th> <td class="cpu"> 100.0% </td> <td class="cpu"> 100.0% </td> </tr>
    <tr> <th class="title"> &nbsp; </th> <th class="title"> CPU 1 </th> <th class="title"> CPU 5 </th> </tr>
    <tr> <th class="title"> Actual </th> <td class="cpu"> 4.8 GHz </td> <td class="cpu"> 4.8 GHz </td> </tr>
    <tr> <th class="title"> Idle </th> <td class="cpu"> 100.0% </td> <td class="cpu"> 100.0% </td> </tr>
    <tr> <th class="title"> &nbsp; </th> <th class="title"> CPU 2 </th> <th class="title"> CPU 6 </th> </tr>
    <tr> <th class="title"> Actual </th> <td class="cpu"> 4.8 GHz </td> <td class="cpu"> 4.8 GHz </td> </tr>
    <tr> <th class="title"> Idle </th> <td class="cpu"> 100.0% </td> <td class="cpu"> 100.0% </td> </tr>
    <tr> <th class="title"> &nbsp; </th> <th class="title"> CPU 3 </th> <th class="title"> CPU 7 </th> </tr>
    <tr> <th class="title"> Actual </th> <td class="cpu"> 4.8 GHz </td> <td class="cpu"> 4.8 GHz </td> </tr>
    <tr> <th class="title"> Idle </th> <td class="cpu"> 100.0% </td> <td class="cpu"> 100.0% </td> </tr>
    <tr> <th class="title"> </th> <th class="title"> </th> <th class="title"> </th> </tr>
    <tr> <th class="title"> </th> <td class="cpu"> </td> <td class="cpu"> </td> </tr>
    <tr> <th class="title"> </th> <td class="cpu"> </td> <td class="cpu"> </td> </tr>
    <tr> <th class="title"> </th> <th class="title"> </th> <th class="title"> </th> </tr>
    </table>
    </div>
    <div class="clear_block" id="software">
    <h2 class="content_title"> Overview of Software Power Consumers </h2>
    <table class="emphasis2">
    <tr class="emph1"> <th class="emph_title"> Usage </th> <th class="emph_title"> Wakeups/s </th> <th class="emph_title"> GPU ops/s </th> <th class="emph_title"> Disk IO/s </th> <th class="emph_title"> GFX Wakeups/s </th> <th class="emph_title"> Category </th> <th class="emph_title"> Description </th> </tr>
    <tr class="emph1"> <td class="no_wrap"> 334.2 ms/s </td> <td class="no_wrap"> 332.5 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> 11.3 </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/bin/vlc --started-from-file </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 9.4 ms/s </td> <td class="no_wrap"> 189.6 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> 154.8 </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/lib/firefox/firefox </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.9 ms/s </td> <td class="no_wrap"> 83.1 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> tick_sched_timer </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 1.5 ms/s </td> <td class="no_wrap"> 57.6 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> 60.3 </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> compton --dbus </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 550.5 us/s </td> <td class="no_wrap"> 56.3 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> hrtimer_wakeup </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 9.0 ms/s </td> <td class="no_wrap"> 47.2 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/bin/pulseaudio --start </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 3.4 ms/s </td> <td class="no_wrap"> 27.2 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Interrupt </td> <td class="no_wrap"> [6] tasklet(softirq) </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 303.4 us/s </td> <td class="no_wrap"> 8.9 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Interrupt </td> <td class="no_wrap"> [58] snd_hda_intel </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 643.7 us/s </td> <td class="no_wrap"> 8.1 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> kWork </td> <td class="no_wrap"> os_execute_work_item </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 24.7 us/s </td> <td class="no_wrap"> 5.6 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [pt1] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 12.8 ms/s </td> <td class="no_wrap"> 0.5 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/sbin/X :0 -auth /run/lightdm/root/:0 -nolisten tcp vt1 -novtswitch </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 102.4 us/s </td> <td class="no_wrap"> 5.5 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/bin/tor -f /etc/tor/torrc </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 12.9 us/s </td> <td class="no_wrap"> 4.9 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [usb-storage] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 72.1 us/s </td> <td class="no_wrap"> 2.8 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Interrupt </td> <td class="no_wrap"> [4] block(softirq) </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 12.0 us/s </td> <td class="no_wrap"> 2.5 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [rcu_preempt] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 25.0 us/s </td> <td class="no_wrap"> 2.0 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> mono /usr/lib/glippy/glippy.exe </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 109.7 us/s </td> <td class="no_wrap"> 1.4 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> pantheon-files </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 194.3 us/s </td> <td class="no_wrap"> 1.4 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/lib/indicator-sound/indicator-sound-service </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 220.8 us/s </td> <td class="no_wrap"> 1.3 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/lib/gnome-settings-daemon/gnome-settings-daemon </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 564.6 us/s </td> <td class="no_wrap"> 0.7 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> kWork </td> <td class="no_wrap"> disk_events_workfn </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 39.9 us/s </td> <td class="no_wrap"> 0.8 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Interrupt </td> <td class="no_wrap"> [16] ehci_hcd:usb3 </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 1.7 ms/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Interrupt </td> <td class="no_wrap"> [64] nvidia </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 5.3 us/s </td> <td class="no_wrap"> 0.7 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> ehci_hrtimer_func </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 1.2 us/s </td> <td class="no_wrap"> 0.7 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> kWork </td> <td class="no_wrap"> blk_delay_work </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 361.3 us/s </td> <td class="no_wrap"> 0.4 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> indicator-sensors </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 14.7 us/s </td> <td class="no_wrap"> 0.5 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> kWork </td> <td class="no_wrap"> pci_pme_list_scan </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 4.7 us/s </td> <td class="no_wrap"> 0.5 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/bin/sixad-bin 0 0 0 </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 73.0 us/s </td> <td class="no_wrap"> 0.4 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/bin/python2 /usr/bin/indicator-cpufreq </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 5.1 us/s </td> <td class="no_wrap"> 0.4 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/bin/httpd -f /usr/share/gnome-user-share/dav_user_2.4.conf -C Listen 49076 </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 62.0 us/s </td> <td class="no_wrap"> 0.3 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Interrupt </td> <td class="no_wrap"> [9] RCU(softirq) </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 35.5 us/s </td> <td class="no_wrap"> 0.25 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/sbin/thermald --no-daemon --dbus-enable </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 5.3 us/s </td> <td class="no_wrap"> 0.25 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/bin/contractor </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 535.4 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Interrupt </td> <td class="no_wrap"> [1] timer(softirq) </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 7.9 us/s </td> <td class="no_wrap"> 0.15 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> 0.2 </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> xscreensaver -no-splash </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 6.5 us/s </td> <td class="no_wrap"> 0.20 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> slingshot-launcher --silent </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 89.9 us/s </td> <td class="no_wrap"> 0.15 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 40.2 us/s </td> <td class="no_wrap"> 0.15 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> 0.1 </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> pantheon-terminal </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 5.8 us/s </td> <td class="no_wrap"> 0.15 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/bin/NetworkManager --no-daemon </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 4.9 us/s </td> <td class="no_wrap"> 0.15 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> openbox </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 147.8 us/s </td> <td class="no_wrap"> 0.05 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/bin/preload --foreground --verbose 1 </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 8.4 us/s </td> <td class="no_wrap"> 0.10 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [ksoftirqd/0] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 2.9 us/s </td> <td class="no_wrap"> 0.10 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> zeitgeist-datahub </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 1.0 us/s </td> <td class="no_wrap"> 0.10 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> kWork </td> <td class="no_wrap"> push_to_pool </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.9 us/s </td> <td class="no_wrap"> 0.10 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [khugepaged] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.2 us/s </td> <td class="no_wrap"> 0.10 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> kWork </td> <td class="no_wrap"> neigh_periodic_work </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 230.8 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> intel_pstate_timer_func </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 222.5 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> powertop --html=runtime-pm.html </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 21.2 us/s </td> <td class="no_wrap"> 0.05 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [ksoftirqd/4] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 16.0 us/s </td> <td class="no_wrap"> 0.05 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [ksoftirqd/2] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 142.2 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Interrupt </td> <td class="no_wrap"> [8] hrtimer(softirq) </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 12.9 us/s </td> <td class="no_wrap"> 0.05 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> kWork </td> <td class="no_wrap"> bdi_writeback_workfn </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 4.1 us/s </td> <td class="no_wrap"> 0.05 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [jbd2/md126p2-8] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 1.8 us/s </td> <td class="no_wrap"> 0.05 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/lib/systemd/systemd-hostnamed </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 1.6 us/s </td> <td class="no_wrap"> 0.05 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/lib/accountsservice/accounts-daemon </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 1.4 us/s </td> <td class="no_wrap"> 0.05 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/lib/indicator-datetime/indicator-datetime-service </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.8 us/s </td> <td class="no_wrap"> 0.05 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> kWork </td> <td class="no_wrap"> check_corruption </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.7 us/s </td> <td class="no_wrap"> 0.05 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/lib/GConf/gconfd-2 </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.6 us/s </td> <td class="no_wrap"> 0.05 </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> kWork </td> <td class="no_wrap"> submit_flushes </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 117.3 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> tg3_timer </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 37.1 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Interrupt </td> <td class="no_wrap"> [16] ivtv0 </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 33.0 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Interrupt </td> <td class="no_wrap"> [56] SATA controller </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 30.6 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> delayed_work_timer_fn </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 30.0 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> process_timeout </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 26.3 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> nvidia_rc_timer </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 25.2 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [ksoftirqd/3] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 20.0 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/0:2] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 19.9 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> kWork </td> <td class="no_wrap"> vmstat_update </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 17.0 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [ksoftirqd/5] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 16.9 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> super-wingpanel </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 13.3 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [ksoftirqd/6] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 9.5 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [ksoftirqd/7] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 8.2 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /usr/lib/bamf/bamf/bamfdaemon </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 6.5 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/2:3] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 6.4 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> bfq_idle_slice_timer </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 6.3 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [ksoftirqd/1] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 5.6 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> clocksource_watchdog </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 4.6 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/4:2] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 4.5 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/3:0] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 4.3 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> /sbin/init </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 4.2 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/2:1] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 4.0 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/5:1] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 3.2 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/6:0] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 3.0 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/7:2] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 3.0 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/2:2] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 2.5 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/2:4] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 2.1 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> plank </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.9 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/2:1H] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.8 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> kWork </td> <td class="no_wrap"> md_submit_flush_data </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.8 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> dev_watchdog </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.8 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/1:1] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.8 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> it_real_fn </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.8 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/0:1H] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.6 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> writeout_period </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.5 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Interrupt </td> <td class="no_wrap"> [2] net tx(softirq) </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.4 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> __prandom_timer </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.3 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> blk_rq_timed_out_timer </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.2 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Process </td> <td class="no_wrap"> [kworker/u16:0] </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> 0.1 us/s </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> Timer </td> <td class="no_wrap"> commit_timeout </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> </tr>
    <tr class="emph1"> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> <td class="no_wrap"> </td> </tr>
    </table>
    </div>
    <div id="devinfo">
    <h2 class="content_title"> Device Power Report </h2>
    <table class="emphasis2 side_by_side_left">
    <tr class="emph1"> <th class="emph_title"> Usage </th> <th class="emph_title"> Device Name </th> </tr>
    <tr class="emph1"> <td > 37.8% </td> <td > CPU core </td> </tr>
    <tr class="emph1"> <td > 37.8% </td> <td > CPU misc </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > Audio codec hwC0D0: Realtek </td> </tr>
    <tr class="emph1"> <td > 0.0 ops/s </td> <td > GPU core </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > Display backlight </td> </tr>
    <tr class="emph1"> <td > 0.0 ops/s </td> <td > GPU misc </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > PCI Device: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > PCI Device: Internext Compression Inc iTVC16 (CX23416) Video Decoder </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > PCI Device: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > PCI Device: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > PCI Device: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > PCI Device: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > PCI Device: Xilinx Corporation Device 222a </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > USB device: EHCI Host Controller </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > USB device: Mass Storage Device (Generic ) </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > USB device: F-01F (Fujitsu) </td> </tr>
    <tr class="emph1"> <td > 100.0% </td> <td > USB device: U

  • Who's Who: How to refine employee search using customer defined indicator?

    Hello,
    It is possible to refine employee search using status indicator STAT2 (Employees' Employment Status). I would like to refine employee search using e.g. Customer defined status indicator STAT1. I created an entry identical to STAT2 but with STAT1
    in view V_T77S0 but it did not help at all.
    How to refine employee search using customer defined indicator or any other info
    from infotype 0000 or 0001?
    Kind regards,
    Pawel

    Hi
    This could be done using the infosets provided in who's who customization screen.
    Pl go through following help.
    If this helps, pl do reward.
    Who's Who (ESS): Selection and Output
    In this activity, you can change the fields for selecting and outputting data for the Who's Who service. The fields of the underlying InfoSet Query are available. Note, however, that text fields cannot be used for data selection (with the exception of the fields Organizational Unit, Position Name, and Job Name).
    You have the following options:
    You can specify the fields for selecting an employee.
    You can specify the fields for the hitlist, that is, the list of all employees who meet the selection criteria.
    You can specify the fields for the detail screen for a selected employee.
    All selected fields are automatically transferred to the service in the sequence you chose and are then available for selection or output.
    Standard settings
    The standard system contains an InfoSet for the service. It contains default selection and output fields.
    Activities
    1. Check whether the default settings fulfill your requirements.
    2. If you want to change the default values, proceed as follows:
    a) Choose the relevant tab page and remove the indicator in the Use default settings for group box.
    To change the selection fields, choose the Selection Fields tab page.
    To change the fields of the hitlist, choose the Output Fields List tab page.
    To change the fields of the detail screen, choose the Output Fields Detail tab page.
    b) If you want to delete a default field, select the field in the relevant tab page and choose Delete Line from Display Table.
    c) If you want to add an additional field from the InfoSet, select the field in the Fields in InfoSet group box and choose Copy Entry from InfoSet Table. You have two options:
    You select an existing field in the tab page and choose Insert Entry in Display Table. The system copies the InfoSet field and inserts it above the selected entry.
    You select the blank field at the end of the tab page and choose Insert Entry in Display Table. The system copies the InfoSet field and inserts it at the end of the tab page.
    Note that the sequence of the fields in the tab page determines the sequence of the fields in the service.
    The selection screen fields are laid out according to the following pattern (maximum of 4 rows and 20 fields):
    1 I 2 I 3 I13 I17
    4 I 5 I 6 I14 I18
    7 I 8 I 9 I15 I19
    10 I11 I12 I16 I20
    The fields in the detail screen are laid out underneath each other for a maximum of 20 rows, while the fields in the hitlist are laid out from left to right for each row, for a maximum of 20 fields.
    Note: You cannot select by the Employment Status field (P0000-STAT2).
    d) If you want to add a new field that is not in the InfoSet, you have to create a new InfoSet. You then assign the required field to the new InfoSet. Then select the new InfoSet in the InfoSet field in the Parameters group box. Proceed as described above to add the field to the relevant tab page.
    For information about creating InfoSets, see Specify InfoSets for Interactive Employee Selection in the IMG for the HR Information System.
    Not the SAP naming convention for the standard InfoSet: /SAPQUERY/HR_XX_PA_ESS
    The country code "XX" stands for "international." The InfoSet itself is in the global area (cross-client). You can create customer-specific InfoSets by copying an existing entry. Take account of your  customer namespace and set the relevant country code.
    Note: The Personnel Number field (P0000-PERNR) must not be added to the InfoSet. If you want to use the personnel number, use the P0001-PERNR field, for example.
    e) In the Sort field of the Output Fields List tab page, you can specify the sort sequence in the hitlist.
    Example: You have selected the Last Name and First Name fields for the hitlist. You want the hits to be sorted first of all by the employees' last name, then by the first name. You therefore enter 1 for the last name and 2 for the first name in the Sort field.
    f) Once you have completed your modifications, choose Check Display Table. If the check was successful, choose Save to save your changes. If inconsistencies were found during the check, a message in the relevant line notifies you of them.
    Further notes
    In certain circumstances, runtime issues may occur, especially in data selection. If they do, set the Selection Fields indicator in the Use Default Settings for group box. This deactivates the use of the InfoSet Query; instead, the system uses the BAPI_EMPLOYEE_GETDATA method.
    You can switch the hitlist and the detail screen to the BAPI_EMPLOYEE_GETDATA method by setting the Output Fields List and Output Fields Detail indicators.
    Note that by setting an indicator, you restrict the field selection in the relevant tab page to the interface of the method.
    If, in the initial screen, you enter a country for which values have not yet been defined, the system automatically creates an entry that sets all indicators in the Use default settings for group box. You can then edit the entry to suit your requirements.
    You can specify whether you want employees' photos to be displayed in the service in the IMG for Employee Self-Service under Determine User Options.
    If this helps, pl do reward.

  • Making Employment status field editable in Actions infotype

    Hi All,
    Can we make the Employment status or Customer specific status editable in Actions Infotype 0000?
    I tried doing that in 'Change Screen modification' in IMG, but it isn't working.
    Please provide your inputs.
    Thanks!

    Hi,<br>
    It is not possile to do it.
    Each action is assigned the three status indicators STAT1 (customer defined), STAT2 (employment), STAT3 (special payment) in the customizing system.
    When a personnel action record is created, the system automatically fills the Customer defined, Employment and Special payment fields if the action affects the employee's status.
    The first record of the Actions infotype is assigned the status specified in the customizing system. All other records
    have the same status indicator as the new personnel action if this is not BLANK in the customizing system.
    have the same status indicator as the previous record if this is BLANK in the customizing system.
    This applies to all three indicators.
    Can you let  us know the business need or requirement to do it??
    Good luck<br><br>
    Thanks,
    Amosha
    <br><br>"Known is a drop & unknown is an OCEAN!"

  • Concurrent Employment IT0712

    Hi Experts.
    I have a short question.
    I know that IT0712 is used to tell me the main personnel assignment, but is it used for something else as well?
    I have two assignment that I think is both main assignments.
    I just want to know what's the main reason for using the infotype 0712?
    Thanks   //   Peter B

    Hi,
    Kindly refer the links
    http://help.sap.com/saphelp_470/helpdata/en/33/2b669b1149db478d1f3733fbb0a28d/content.htm
    http://help.sap.com/saphelp_470/helpdata/en/16/08c73c52aacf5be10000000a114084/content.htm
    http://help.sap.com/saphelp_tm60/helpdata/en/43/21d4cf1b1705c5e10000000a1553f6/content.htm
    For Concurrent Employment, you have to generate the Personal ID which could be based on the object id of the central person,personnel number,or from the Personal Data or user defined.
    The personal identification number is used differently in different countries, for example as social security number, tax number, passport no etc.
    If an employee has personnel assignments in several countries and his or her personal identification number has different values, than only one personal identification number can be used as the person ID for this employee.
    This personal identification number is generated and stored in IT0709 for all employees with concurrent employment as is the reference indicator.
    Salil

  • Black Clipping indicator

    Anyone have any tips about setting the black clipping points? I'd like to set up Aperture 2 to have similar warning as to Lightroom, but I can't figure out how. Seems like the black clipping (or Cold Area, as Apple puts it) is affected by the following:
    1 - Cold Area Display Threshold in the Preferences;
    2 - The "Boost" settings in the RAW Fine Tuning in the Inspector
    3 - The "Black Point" settings
    Also, it seems that the clipping overlay does not work in monochrome. All I get is either blue or red in the various clipping indicators and not a monochrome, even after I changed the settings in the Prefs.

    First off, this image is not a raw image.  It is a compressed small-raw of some sort so Adobe's normal demosaicking algorithms are not being employed, and Adobe is having to reverse engineer R, G, B channels from Y, Cb, Cr channels, so something may be non-optimal this conversion.
    Secondly, at least with this non-raw Y, Cb, Cr image, there are some Y pixels that have zero value in the file, so no matter what you do, other than adjusting the bottom of the tone curve above zero, they will be clipped.
    It also seems that the clipping indicator triangles are not affected by the Detail settings so turning off any noise-reduction or sharpening is required show you which pixels the clipping triangle is keying off of.
    Here is your image opened in an RawDigger which is a raw analysis program that indicates the Y channel does have a minimum value of 0:
    Here is a screenshot of LR with a very small crop on the shadowed background area above the performers, with the Detail settings turned off--no noise reduction or sharpening, and the Toning settings as bright as possible, and in that small crop area, there are a few black pixels that are highlighted blue if I turn on the clipping indicator, so it's not surprising, that with this image, at least, the black clipping indicator doesn't turn off very easily.  In this side-by-side, they have the same settings, but the Before image is without the clipping indicator and the After image is with the clipping indicator engaged so you can see the 4 pixels that are 0 in the tiny cropped area:
    Here is a DNG of the settings as in the above LR screenshot, other than the embedded preview that appears to be the entire image not the tiny cropped area:
    https://dl.dropboxusercontent.com/u/9905000/Dab_143378_smallcrop_maxedtoning.dng

  • Indicator that says that dependent is court mandated in Infotype 167

    Hi,
    We have some employees where dependents are maintained in infotype 167 for health insurance and that are court mandated. We cannot remove the dependents prior to age 19 (or 23 if a full time college student) without getting something from the court. Obviously if the employee terminates his/her employment, that ends everything.
    We are looking for user exit either in infotype 167 OR in HRBEN0001 tcode so we can provide some Indicator that dependent is court mandated. Any ideas ?
    Niranjan

    Hi Amosha,
    Thanks for your reply. I used PM01 tcode, entered 0106 in 'Infotype no' field, click on 'Enhance IT' tab, selected 'CI include' and pressed 'Create' button. It took me to SE11 with structure name CI_P0106. I added a new field called 'COURT_MANDATED'.
    Then backed out, clicked on 'Include Screen' radiobutton, entered 9999 in field and clicked on 'Create' button. It took me to SE51 with program name ZP010600 and screen 9999. I added this new field 'COURT_MANDATED' in the screen with a checkbox.
    Now I am not sure how to link this screen with main screen infotype 21 and code further. Pl let me know. Pl also note that we cannot enter directly in infotype 0106.
    Niranjan

  • Delivery Completed Indicator  - Open PO Quantity Issue

    Hi All,
    I have an issue relating to our Open Purchase Order Report.  I have some POs which are appearing on the report eventhough they are marked, 'Delivery Complete' ie NOT open. The example of a PO is where the PO Quantity is 100 and the Goods Receipt is 99.  The user knows that there will be no further deliveries and therefore marks the PO 'Delivery Complete'
    In the Extractor to BI we have extracted this field ELIKZ 'Delivery Completed Indicator'.  The structure of our datamodel is
    PSA -> DSO (Write Optimised DSO) -> Cube
    We calculate the Open PO Qty by taking 'PO Qty' minus 'Goods Receipt Quantity' I have checked the example PO in the cube & DSO.  I can see that for the infoobject 'Delivery Complete Indicator' that it has been marked 'X' but only on the records relating to the Goods Receipt for this PO.  The original PO record is added to the cube eg on 1st Jan and then the Goods Receipt record, including the delivery complete indicator is added to the cube on 31st Jan, but the original record is not updated by this indicator.  Therefore at the moment I cannot use this to filter out records in my query.  See below how it looks in the Cube;
    Created Date - PO No - PO Line - Del Complete Indicator - PO QTy - Goods Receipt Qty
    01.01.2011       123      10             (Blank)                             100
    31.01.2011       123      10                 X                                                         99
    What should I do?  How have you created this report?
    Just to let you know I have already read the post Delivery Completed Indicator(ELIKZ:0COMPL_DEL) in 2LIS_02_SCL
    Many thanks for your help,
    Michelle

    Hi Kalyan,
    Thanks very much for your message,
    In my case if the Order Qty is not equal to receipted this does not always mean that it is open.  Sometimes the receipted quantity can be over or under (not equal) and the PO can be closed.  What do you mean by confirmed quanity?  Also, this is a Purchase Order report not a Sales report.
    You have said...
    "Then I would suggest to still keep the condition on the Net ord qty and Net confirmed qty and exclude the del compl indicator as X and also the status as open "
    I don't understand how this will work.  My issue is that the indicator is not on all the records of a PO only the receipted records.
    Can you help again please?
    Many thanks
    Michelle

  • Magic Mouse and Employing Pinch to Open and Close Feature

    I have purchased a magic mouse and would like to employ the "pinch to open & close" features (option on multi-touch trackpad) with the magic mouse. This is not the same as zoom (e.g. hold control key with mouse wheel).
    I have tried using bettertouchtool and magicprefs, but it appears that neither accommodates this feature easily. If there were a keyboard shortcut to employ this feature then I think I can assign it to a magic mouse gesture via BTT or Magic Prefs, but I cannot find such a keyboard shortcut.
    Does anyone have any ideas?

    It could be you are approaching it incorrectly.   It can be a tricky little gadget that actually works with minimal pressure.
    Try turning over the mouse so the compartment panel faces you, optical sensor topmost.  Then holding the mouse at each side but not on the panel itself, flick the small, black rectangular panel downwards.   The top of the panel should spring out, though it may require you to manipulate it fully away from the mouse.
    Once you have replaced the batteries, starting at the bottom reverse the procedure then clip into place.   Remember to move the small switch next to the optical sensor upwards which should turn on the green light.   Then click twice to connect.

  • In list view in ibooks i have an indicator that looks like a media stop eg || in a circle on many lines. What is it

    All of a sudden using Ibooks on my Ipad - many lines in list view have this indicator || inside a circle appearing on the far right and the books no longer open.  I can find nothing about this in help. What is it and what does it mean
    Peter Rowan

    Hi John, I'm guessing that icon is created and updated by an extension. I'm not sure which one, though. Maybe something that is tracking the trackers, like Lightbeam? Have you tried hovering your mouse over the icon to see whether a tooltip appears, or clicking it?

  • Deactivate Goods receipt indicator on PO Delivery Tab

    Dear Experts
    My client would like that system would not require goods receipt (non-GR based PO) for PO line items of respective material group (services) - goods receipts should even not be possible so GR indicator on the delivery tab should be ticked-off.
    Since the client is using one-client system with multiple company codes on same client this requirement should be valid not on a client- but on a company code- or plant-level.
    Please advise how to approach to this challenge. Is it possible to set it up via customizing or some programming is required.
    Thank you in advance for any hint.
    Best regards
    Miha Egart

    Hi Jürgen,
    I have checked the Network, it is not stock managed.
    But there is another PO in which the network is not stock managed but The GR indicator is set for the PO.
    I am doing PR conversion through ME59 just against info record not against contract.
    Instead of automatically converting PR through ME59/ME59N, if I am trying to do it directly through ME21N, the GR tick is set. But the client will not do this, they will do automatic conversion of PR's only.
    Can you please suggest some other possibilities.
    Regards,
    Krishna Bharadwaj.

Maybe you are looking for

  • MacBook Pro Retina Running Very Slow (EtreCheck)

    Problem description: My MacBook Pro Retina has been running very sluggish lately. It used to be so consistently fast and now it is just so sluggish. EtreCheck version: 2.0.11 (98) Report generated November 25, 2014 at 11:17:21 AM MST Hardware Informa

  • ISA570 - How to make my WebServer always uses the same Public IP

    Hi all I have reserved one IP of my pool to my exchange server. The Reverse DNS is configured for this IP. My exchange server is sometimes rejected by the other because it is using the first public IP of my pool to go on Internet, and not the one i w

  • Documents view permission

    there is a designation table and there is admins e.g supervisor,manager ,director so when supervisor upload document then he/she not able t see his/her documents i try this sp SELECT dbo.DocumentInfo.DocID, dbo.DocumentInfo.DocName as DocumentName, d

  • The invoice date and the paymant date showing the same

    hi sap techies i am facing a typical problem the invoice date and the payment date is showing the same in fbl5n.the payment terms are set for 30 days that means that the payment date should be 30 days from the invoice date but in fb03 the system show

  • TS4002 not seeing folder names some email message content from Firefox log in to iCloud

    Lately when I access my iCloud account I'm not see the Folder names and some emails are showing no content from Firefox on my work PC, though when I view Mail from my iPhone the folders and the email message content is there. It doesn't happen all th