How to get users from Organizational Unit and with worker's subgroup
Hi
I am looking for a f. module to get the list of users from specific Organizational Unit and with specific worker's subgroup.
I found f. module SWI_GET_USERS_OF_ORG_UNIT but it seems not working and only returns the users, how can I narrow the selection to get only from specific worker's subgroup?
Thank you
Hi,
Try with FM RH_STRUC_GET with following parameters:
ACT_OTYPE = O
ACT_OBJID = worker's subgroup
ACT_WEGID = SBESX
Most important is to specify OBJID as the workers's subgroup, values for the others parameters may vary.
Cheers.
Similar Messages
-
How to get managers from org unit?
Hi Experts,
Anyone knows how to get managers information from given org unit?
ThanksHi Shane,
You need to use two FM's for this :
Use BBPU_GET_USERS_OF_ORGUNIT to get user IDs of all users of the ORGUNIT
And then use BBPU_GET_MANAGER_FLAG to get manager flag for each user ID.
Hope this helps
Regards
Vishal -
How to restrict users from printing documents and exporting to local file
Hi SAP gurus,
I have two questions.
1. How can I restrict users from printing a document? i.e. billdoc? I would like to know if I could block it though authorization. If yes, what auth obj to use?
2. How to restrict certain users from exporting to local file? the System> List>Save-->Local File. I have tried restricting it using auth object S_GUI but it seems it is only applicable to older versions of SAP. im on ecc6.
Thank you in advance.Hi,
Check this:
Create your own gui status and attach it to the list in the event START-OF-SELECTION.
In the menu painter extra -> adjust template.
Make it a list status and you will see all the standard list options appear including list->download
Deactivate the ones you don't want.
If you just want to prevent users from downloading the list you can achieve this with authorization object S_GUI, activity 61. Menu option will still be there though.
Please note that if you remove authorisation for S_GUI activity 61 then all downloads will not be possible.
If you just want to disable downloads only for a particular report, you can try this test program:
Code:
REPORT ztest.
DATA: PROGNAME LIKE SY-CPROG value 'Z_CHECK_AUTH',
FORMNAME LIKE SY-XFORM value 'F_CHECK_AUTH'.
START-OF-SELECTION.
CALL FUNCTION 'SET_DOWNLOAD_AUTHORITY'
EXPORTING
FORM = FORMNAME
PROG = PROGNAME
EXCEPTIONS
OTHERS = 1.
WRITE: / 'TEST'.
You also need this:
Code:
PROGRAM z_check_auth.
FORM f_check_auth USING pe_result TYPE i.
pe_result = 5.
ENDFORM.
Also have a look at the exit SGRPDL00.
Hope this helps you.
Rgds,
Raghu -
Hi everyone,
I am doing simple task in Visual C++ and I am using PCI-6221(37 pin).
Basically, I want to send same signal from 'analog input' to 'analog output'
at the same time (almost), to make it real-time application.
Can someone please provide me sample program.
I would appreciate if you could provide me with the good tutorial which explains
step by step everything about programing NI-DAQmx for C/C++.
Best Regards,
Khassan
Solved!
Go to Solution.This is my code in C++, you can optimize it if it looks too messy. This code reads signal from analog input and outputs it through analog output.
To make this code work additional include directories and library directories must be added from NI.
I hope it helps someone.
#include <stdio.h>
#include <conio.h>
#include "NIDAQmx.h"
#include <math.h>
#define DAQmxErrChk(functionCall) { if( DAQmxFailed(error=(functionCall)) ) { goto Error; } }
int main(int argc, char *argv[])
int32 error=0;
TaskHandle taskHandleRead=0,taskHandleWrite=0;
int32 read=0;
float64 dataRead[1000];
char errBuffRead[2048]={'\0'};
char errBuffWrite[2048]={'\0'};
bool32 done=0;
int32 written;
DAQmxErrChk (DAQmxCreateTask("",&taskHandleRead));
DAQmxErrChk (DAQmxCreateAIVoltageChan(taskHandleRead,"Dev1/ai0","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL));
DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandleRead,"",100.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,0));
DAQmxErrChk (DAQmxCreateTask("",&taskHandleWrite));
DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandleWrite,"Dev1/ao0","",-10.0,10.0,DAQmx_Val_Volts,NULL));
DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandleWrite,"ai/SampleClock",100.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000));
DAQmxErrChk (DAQmxStartTask(taskHandleRead));
DAQmxErrChk (DAQmxStartTask(taskHandleWrite));
while( !done && !_kbhit() )
DAQmxErrChk (DAQmxReadAnalogF64(taskHandleRead,1,10,DAQmx_Val_GroupByScanNumber,dataRead,1000,&read,NULL));
DAQmxErrChk (DAQmxWriteAnalogF64(taskHandleWrite,read,0,10.0,DAQmx_Val_GroupByChannel,dataRead,&written,NULL));
_getch();
Error:
if( DAQmxFailed(error) )
DAQmxGetExtendedErrorInfo(errBuffRead,2048);
DAQmxGetExtendedErrorInfo(errBuffWrite,2048);
if( taskHandleRead!=0 )
DAQmxStopTask(taskHandleRead);
DAQmxClearTask(taskHandleRead);
if( taskHandleWrite!=0 )
DAQmxStopTask(taskHandleWrite);
DAQmxClearTask(taskHandleWrite);
if( DAQmxFailed(error) ){
printf("DAQmx Error: %s\n",errBuffRead);
printf("DAQmx Error: %s\n",errBuffWrite);
printf("End of program, press Enter key to quit\n");
getchar();
return 0; -
Help , How to get data from database using recordset with UI API
I want to get a data from database
when I want to create recordset i notice that UI API didn't has record set
so I created recordset using DI API (SAPbobscom.recordset and SAPbobscom.company)
======================================================
Dim oCompanyUI As SAPbouiCOM.Company <<UI API
Dim oRecSet As New SAPbobsCOM.Recordset << DI API
Dim oCompanyDI As New SAPbobsCOM.Company << DI API
'=====================================================
oCompanyDI.Connect
Set oRecSet = oCompanyDI.GetBusinessObject(BoRecordset)
oRecSet.DoQuery ("SELECT T0.CardCode, T0.CardName FROM OCRD T0")
SBO_Application.MessageBox oRecSet.Fields.Item(1).Value
======================================================
but I got an error it said "you are not connected to company"
I'm really don't have an idea about how to get a data from using UI API (exp I want to get a date or costumer code)
can someone help me please, I really need it
Thanksyou need a single sign on
Dim oDICompany As SAPbobsCOM.Company
Dim sCookie As String
Dim sConnStr As String
Dim ret As Integer
oDICompany = New SAPbobsCOM.Company
sCookie = oDICompany.GetContextCookie
sConnStr = SBO_Application.Company.GetConnectionContext(sCookie)
If oDICompany.Connected Then
oDICompany.Disconnect()
End If
ret = oDICompany.SetSboLoginContext(sConnStr)
If Not ret = 0 Then
SBO_Application.MessageBox("set Login Context failed!")
Exit Sub
End If
ret = oDICompany.Connect()
If Not ret = 0 Then
SBO_Application.MessageBox("Company Connect failed!")
End If -
How to get handoff from mac to iOS to work properly
I have MBP late 2012, and can send SMS text messages from Mac, send and receive phone calls from Mac, however, cannot use handoff with Mail, Messages, Safari, and the like. Tried all restarting, re-logging in, etc. No help.
Any suggestions?
Handoff works perfectly between iPhone 6 and iPad Air. But not between my iOS device and MBP.I Got everything to work properly by signing out of iCloud on iOS device and then signing back in, restarting, then shutting off Bluetooth and then back on on both MBP and ios device. But, if you have two iOS devices, make sure that one iOS device Bluetooth is turned off until your MacBook Pro is recognizing handoff with the second iOS device. Then, you can turn the first iOS device Bluetooth back on.
-
Simultaneous sound: how to get sound from internal speakers and usb audio adapter
I have an iMac in my living room. It is hardwired to my home theater system in my family room. Currently, I can listen to audio in one location or the other... but not both. I bought a StarTech.com ICUSB Audio Adapter hoping that it would be a fix... not so much. Downloaded SoundSource... not so much
How can I get audio to play via my internal speakers and through my home theater system? Hosting a party this Saturday and would like multiple rooms filled with sound.First pluging is headphones and then unplugging it. If yu can't get it fully inseted tham may indicate that end of a plug is broken off inside the jack.
Then if not above problem, try the standard fixes:
- Reset. Nothing is lost
Reset iPod touch: Hold down the On/Off button and the Home button at the same time for at
least ten seconds, until the Apple logo appears.
- Restore from backup
- Restore to factory defaults/new iPod
If you still have the problem then an appointment at the Genius Bar of an Apple store is in order. -
How to get value from option box and submit accordingly
Sorry for posting my question. I have been trying to edit message and repost it and not successful. Hence I am reposting my question. Please let me know.
I am right now exploring JSF for presentation layer. I am designing a form with <h:outputLabel..> and <h:inputText...> for the user to input his value. I also have a radio button as below. <h:outputLabel..>
<h:inputText...>
<h:selectOneRadio id="libraryList" >
<f:selectItems value="#{libraryList}"/>
</h:selectOneRadio>And I have included the following piece of code in faces-config.xml as below.
<managed-bean>
<managed-bean-name>libraryList</managed-bean-name>
<managed-bean-class>java.util.HashMap</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<map-entries>
<map-entry>
<key>Pass</key>
<value>Pass</value>
</map-entry>
<map-entry>
<key>Fail</key>
<value>Fail</value>
</map-entry>
</map-entries>
</managed-bean>Hence I get two option box as Pass and Fail.
I am also bit aware of navigation rules of JSF. Now I want the user to take to the step 2 if he chooses the option Pass and if the user chooses Fail, then I want to reset the values of the above form and display the same form.
I have not done any Java part of the application yet as I am a newbee and hence started doing JSP pages and config-faces.xml part. Please let me know how to proceed further.Create a bean, bind the value to the bean, let the action method return that value and add navigation-case entries for those outcomes.
-
i tried to update my software to 10.9 and forgot i had a disc of pictues in the computer. i stopped the istall as it was trying to go onto the disc of pictures. now its stuck on the os x page and i cant get it to my home screen. can anyone help?
I'm not really sure what you mean by "the os x page". It sounds like the installation did not complete.
I would try this:
hold down the power button until the computer shuts down
take out the disk with the pictures!
restart and see if it will boot up
if it boots up normally, I'd probably try to repair your HD: Boot into your recovery partition (hold down ⌘R at restart until you see the Apple symbol), go to Disk Utility, and repair your hard drive. While you're there, repair permissions too. OSX Tips Using the Recovery HD
Then I'd try to reboot and run the installer again. I think it's a good idea to do the installation in safe mode : Mac OS X: What is Safe Boot, Safe Mode? .
if it won't boot up normally, I'd try booting from the recovery partition and repairing your HD.
if it won't boot into the recovery partition, your options are:
Try to repair your hard drive with internet recovery: OS X: About OS X Recovery
If you have access to another (working) Mac and a USB thumb drive, download Recovery Disk Assistant, which you can use to repair your hard drive or reinstall OSX: OS X: About Recovery Disk Assistant
Try to boot into single user mode and repair your hard drive: Repair Your Hard Disk in Single User Mode | Everything Macintosh -
How to get data from pdf file and send contents of the pdf file to R/3
Hi, experts,
Action:
1. Make a pdf forms (interactive form) with inputfield named A_inputfield in the webdynpro application and run the webdynpro application.
2. In the IE, click the save button in the pdf interactive form and save the pdf to local disk,ex: C disk. Close the IE browser.
3. Open the pdf interactive form from the local C disk and type "aaa" to the A_inputfield.
4. I want to save the "aaa" to the R/3 system using webdynpro or using other tools . How can I do it?
First way:
If I use webdynpro application to save the content of the pdf, I don't find a way mapping or binding the content to a context of a view. So I don't think this way is unadvisable.
Second way:
Adding a button "submit" in the pdf forms when create the pdf form. Runing the webdynpro application, save the pdf to local disk,ex: C disk. Opening the pdf interactive form from the local c disk and typing "aaa" to the A_inputfield, click the "submit" button to save the content. Of course, I need to finish the code for clicking "submit" button. But I don't know how to write these codes and where to write these codes. Do you give me some advise ?
Best regards,
taoHi, Abhimanyu L,
Thanks a lot for your help. Your answer can give me large developmental.:)
I find http://help.sap.com/saphelp_erp2005/helpdata/en/67/fae9421dd80121e10000000a155106/content through searching google for CL_WD_ADOBE_SERVICES class. But I don't find any exmples for the class. Do you give me some hint for some exmples for the class?
Best regards,
tao
(You can reply back to me via e-mail if you think we should discuss this internally at [email protected] or [email protected]) -
How to get Personnel Numbers from Organizational Unit ?
Hello All,
I have a requirement in the HR module to get a list of all the personnel numbers maintained for a Organizational Unit.
Is there any Function Module to find out the Personnel Numbers assigned to a Organizational Unit for HR module ?
Thanks,
Ketan.Hi Ketan,
I'm not sure that there is any Function Module available for finding the Personnel Numbers. I have listed some Tables in HR Module try whether this will help you in finding Personnel Numbers for Organizational Unit.
DD01L Domains
DD02L SAP tables
DD03L Table Fields
DD03T DD: Texts for fields (language dependent)
DD04L Data elements
DD04T R/3 DD: Data element texts
DD05S Foreign key fields
DD06L Pool/cluster structures
DD20L Matchcode Ids
DD24S Fields of a matchcode ID
T000 Clients
T001 Company Codes
T001E Company code-dependent address data
T001P Personnel Areas/Subareas
T012 House banks
T012K House bank accounts
T012T House bank account names
T500L Personnel Country Grouping
T500P Personnel Areas
T500T Personnel Country Groupings
T501 Employee Group
T501T Employee Group Names
T502T Marital Status Designators
T503 Employee Groups / Subgroups
T503K Employee subgroup
T503T Employee Subgroup Names
T504A Benefits - Default Values (NA)
T504B Benefit Option Texts (North America)
T504C Benefit Type (NA)
T504D Benefit Credit Group Amount
T504E Benefit Amount
T504F Benefit Costs
T508A Work Schedule Rules
T508T Texts for Employee Subgroup Groupings for Work Schedules
T510 Pay Scale Groups
T510A Pay Scale Types
T510F Assign Pay Scale > Time Unit, Currency
T510G Pay Scale Areas
T510H Payroll Constants with Regard to Time Unit
T510I Standard Working Hours
T510J Constant Valuations
T510L Levels
T510M Valuation of pay scale groups acc. to hiring date
T510N Pay Scales for Annual Salaries (NA)
T510S Time Wage Type Selection Rule
T510U Pay Scale Groups
T510Y Special Rules for Wage Type Generation
T511 Wage Types
T512R Cumulation Wage Types in Forms
T512S Texts for Cumulation Wage Types in Forms
T512T Wage Type Texts
T512W Wage Type Valuation
T512Z Permissibility of Wage Types per Infotype
T513 Jobs
T514S Table Name Texts
T514T Field Name Texts
T51D2 Wage Type Classes
T51D3 Reduction Rules
T51D4 Cumulation Rules
T527X Organizational Units
T528B Positions - Work Centers
T528C Wage Type Catalog
T528T Position Texts
T529A Personnel Event
T529F Fast Data Entry for Events
T529T Personnel Event Texts
T52BT Texts For HR Objects
T52C0 Payroll Schemas
T52C1 Payroll Schemas
T52C2 Texts for Personnel Calculation Schemas
T52C3 Texts for Personnel Calculation Schemas
T52C5 Personnel Calculation Rules
T52CC Schema Directory
T52CD Schema Directory
T52CE Directory of Personnel Calculation Rules
T52CT Text Elements
T52CX Cross References via Generated Schemas
T52D1 Valid Processing Classes
T52D2 Valid Values for Processing Classes
T52D3 Valid Evaluation Classes
T52D4 Permitted Values for Evaluation Classes
T52D5 Wage Type Groups
T52D6 Wage Type Group Texts
T52D7 Assign Wage Types to Wage Type Groups
T52D8 Valid Processing Classes - Texts
T52D9 Valid Values for Processing Classes - Texts
T530 Reasons for Events
T530E Reasons for Changes
T530F Reasons for Changes
T530L Wage Types for Special Payments
T530T Event Reason Texts
T531 Deadline Types
T531S Deadline Type Texts
T533 Leave Types
T533T Leave Type Texts
T539A Default Wage Types for Basic Pay
T539J Base Wage Type Valuation
T539R Events for Standard Wage Maintenance
T539S Wage Types for Standard Wage Maintenance
T548 Date Types
T548S Date Conversion
T548T Date Types
T548Y Date Types
T549A Payroll Areas
T549B Company Features
T549C Decision Trees for Features (Customers)
T549D Feature Directory
T549L Date modifiers
T549M Monthly Assignment: Payroll Period
T549N Period Modifiers
T549O Text for date modifier
T549P Valid Time Units for Payroll Accounting
T549Q Payroll Periods
T549R Period Parameters
T549S Payroll date types
T549T Payroll Areas
T549M Monthly Assignment: Payroll Period
T549N Period Modifiers
T549O Text for date modifier
T549P Valid Time Units for Payroll Accounting
T549Q Payroll Periods
T549R Period Parameters
T549S Payroll date types
T549T Payroll Areas
T554S Absence and Attendance Types
T554T Absence and Attendance Texts
T554V Defaults for Absence Types
T554Y Time Constraints in HR TIME
T555A Time Types
T555B Time Type Designations
T559A Working Weeks
T559B Name of Working Week
T572F Event Texts
T572G Allowed Values for Events
T572H Event Value Texts
T582A Infotypes
T582B Infotypes Which Are Created Automatically
T582S Infotype Texts
T582V Assignment of Infotypes to Views
T582W Assigns Infotype View to Primary Infotype
T582Z Control Table for PA Time Management
T584A Checking Procedures - Infotype Assignment
T588A Transaction Codes
T588B Infotype Menus
T588C Infotype Menus/Info Groups
T588D Infogroups for Events
T588J Screen Header Definition
T588M Infotype Screen Control
T588N Screen Modification for Account Assignment Block
T588O Screen Modification for Assignment Data
T588Q Screen types for fast entry
T588R Selection Reports for Fast Data Entry
T588S Screen Types for Fast Entry
T588T Menu and Infogroup Designations
T588V Business object type
T588W Event types for infotype operations
T588X Cust. composite definition of event types for IT operations
T588Z Dynamic Events
T591A Subtype Characteristics
T591B Time Constraints for Wage Types
T591S Subtype Texts
T596F HR Subroutines
T596G Cumulation wage types
T596H _Cumulation wage type texts
T596I Calculation rule for cumulation wage types
T596U Conversion Table
T599B Report Classes
T599C Report Classes
T599D Report Categories
T599F Report Classes - Select Options
T777A Building Addresses
T777T Infotypes
T777Z Infotype Time Constraints
T778T Infotypes
T778U Subtypes
Error Messages tables
T100 Messages
T100A Message IDs for T100
T100C Control of messages by the user
T100O Assignment of message to object
T100S Configurable system messages
T100T Table T100A text
T100V Assignment of messages to tables/views
T100W Assign Messages to Workflow
T100X Error Messages: Supplements -
How to inherit roles between root organization unit and sub units
Hi all,
I have root organization unit and sub units:
->Company
>Department 1
>Department 2
>Department 3
>Department 4
>Department 5
I would like it to work like this that all people from all departments would have access to transaction ZTEST. Most obvious way would be for me to assign appropriate role to unit Company. Unfortunately it looks like roles are not inherit between units like this. So question is how it should be done? Do I have to assign this role to all departments to make it work?
Best regards
Marcin CholewczukHi,
To activate inheritance of roles between root org and sub org units, you need to set switch HR_ORG_ACTIVE to Yes in table PRGN_CUST. Also proper evaluation path has to be used so that user comparison (via PFUD) creates the indirect role assignment to user master records.
You can modify evaluation path US_ACTGR in table T77AW/ tcode OOAW to include root org and its subunits (add entry for relationship O B002 O) and connect the role assigned to root org to the users belonging to sub org units. Then run PFUD which will use this evaluation path to create indirect role assigment.
Thanks
Sandipan -
How do we link the central organizational unit and purchase organization i
hi friends
How do we link the central organizational unit and purchase organization in SUS configuration?
regards
vinaykrishnaThe workflow process is associated to the transaction you select by parameters in the function call.
The Responsibility 9e.g. employee self service) is linked to a menu. The menu contains (amongst other things) functions. If the function is associated to a menu prompt, then when the user clicks on the prompt (e.g. Change Job) the function is invoked. When the function is invoked, it calls the workflow described in the function call.
The function will already (out of the box) point to a workflow process. If you have customised your own process, you will need to amend the function call to call your workflow name.
Look at the function in question and you will see what I mean.
Hope that helps explain it!
Regards
Tim -
How to fetch responsible agents from organizational unit
Hi All,
I am new to workflow let me know your suggestion to fetch responsible agents from organizational unit in task.
Thanks,
Prasanthi.Here is some code that will give you the users and their email addresses of an org unit.
select single objid
from hrp1000
into hrp1000-objid
where plvar = '01' " Plan version
and otype = 'S' " Object type
and short = position. " position, case sensitive
select sobid
from hrp1001
into w_org-uname
where otype = 'S' " Object type
and objid = hrp1000-objid " Object ID
and plvar = '01' " Plan version
and sclas = 'US'. " Rel.obj.type
append w_org to i_org.
endselect.
loop at i_org into w_org.
select persnumber addrnumber
up to 1 rows from usr21
into (usr21-persnumber, usr21-addrnumber)
where bname = w_org-uname.
endselect. " USR21
clear adr6-smtp_addr.
select smtp_addr
up to 1 rows from adr6
into adr6-smtp_addr
where addrnumber = usr21-addrnumber and
persnumber = usr21-persnumber.
w_org-smtp_addr = adr6-smtp_addr.
append w_org to org_unit .
endselect. " ADR6
endloop. " I_ORG -
Hi,
I am working with Oracle Designer in a project where we need to asses the Business Process Model of the customer, mapping it in Oracle Designer.
The Customer wants to see the relationship between Business Entity and Organization Units and Processes.
We are following this approach:
- define Entity
- define Organization Unit
- draw process models with Oracle Designer Process Modeler, defining the single process steps and indicating the Organization Unit who performs that activity;
- draw a Data Flow Diagram for each Entity with Oracle Designer Data Flow Diagrammer, including the business function we have defined as process steps within the Process Modeler.
Process Modeler allows us to link process steps to Organization Units, while Data Flow Diagrammer links Entity to business functions ( which are equal to our process steps). So we expect that for the "transitive properties" Organization Units should be linked automatically to Entity.
At the end, using Oracle Designer Matrix Diagrammer we only see the relationship between Business Functions and Entity and not the one between Organization Unit and Entity .
In fact, if we open Object Repository Navigator and check the property "Business Unit Entity Usage" of the Business Unit, there is no evidence of the entity related to the business function performed by the Organization/Business Unit.
Could someone helps us to understand how to use correctly the Oracle Designer Tools ?
We look forward to hearing from you.
Regards
Flavia Ercoli & Rodrigo SilveiraI would recommend the 10g version anyday over the previous versions. If you use any of the other supporting apps (forms, reports, portal....) your already at a much better release :)
Is there a reason you would want to use the prior version?
Maybe you are looking for
-
I have an XY graph that I'm using to display data read from a TDMS file. I'm using a property node to set the XScale.Maximum and XScale.Minimum to allow the user to see only a portion of the graph at once. This way they see the latest data more easil
-
When I want to setup "Adobe" Windows tell me "Data Too Big To Be Stored In Memory".
Hello. How can I solve the error "Data Too Big To Be Stored In Memory" ? Thanks.
-
IWeb 09 and Mountain Lion compatibility
Hi all, has anyone already tried to run iWeb 09 with Mountain Lion? Perfect compatibility? Thanks. Antonio
-
I have install, in my laptop Photoshop CC after I installed Photoshop CC on my desktop both I Mac Paid one year subscription. The laptop version was installed as a trial. Now would like to enter serial # for permanent use. How do I do that? Thank
-
I am wanting to know about methods of getting a wap to join a wlc. I've got 5508 wlc's and the wap's are the 1142's. Are there other methods of getting wap's to join wlc's other than option 43 of dhcp? Also, is it possible to get a wap to automat