AWSTemplateFormatVersion: "2010-09-09" Description: > Helping customers break down data silos with AWS Integration services ## To use this template, you must have installed the below extractors and created their service as per pre-requisites. Once you have, simply find and replace the service details for each ## By default this schedules the below flows to run every five minutes for attributes, and daily for texts ## 0customer_attr - /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUSTOMER_ATTR ## 0customer_text - /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUSTOMER_TEXT ## 0material_attr - /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATERIAL_ATTR ## 0material_text - /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATERIAL_TEXT Parameters: ConnectorName: Description: The name of the SAP source system connection Type: String AppFlowSAPStartTime: Description: EPOC date of first run for flow Type: Number DestinationS3BucketName: Description: Name of the Destination S3 Bucket Type: String Resources: # Create Amazon AppFlow to pull data from SAP and store into S3. Seperate resource name for each extractor connection (ie. for each flow) cfcustomerattrtoS3: Type: AWS::AppFlow::Flow Properties: FlowName: cf_customer_attr FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0customer_attr Customer Attributes' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Incremental ## If you wish to extract the transaction data at a different frequency, update here ScheduleExpression: rate(5minutes) ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: # Change this to your ObjectPath ObjectPath: /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUSTOMER_ATTR DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: HOUR PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP # Create Amazon AppFlow to pull data from SAP and store into S3. Seperate resource name for each extractor connection (ie. for each flow) cfcustomertexttoS3: Type: AWS::AppFlow::Flow Properties: FlowName: cf_customer_text FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0customer_text Customer Texts Description' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the transaction data at a different frequency, update here ScheduleExpression: rate(1day) ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: # Change this to your ObjectPath ObjectPath: /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUSTOMER_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP # Create Amazon AppFlow to pull data from SAP and store into S3. Seperate resource name for each extractor connection (ie. for each flow) cfmaterialattrtoS3: Type: AWS::AppFlow::Flow Properties: FlowName: cf_material_attr FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0material_attr Material Attributes' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Incremental ## If you wish to extract the transaction data at a different frequency, update here ScheduleExpression: rate(5minutes) ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: # Change this to your ObjectPath ObjectPath: /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATERIAL_ATTR DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: HOUR PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP # Create Amazon AppFlow to pull data from SAP and store into S3. Seperate resource name for each extractor connection (ie. for each flow) cfmaterialtexttoS3: Type: AWS::AppFlow::Flow Properties: FlowName: cf_material_text FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0material_text Material Texts Description' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the transaction data at a different frequency, update here ScheduleExpression: rate(1day) ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: # Change this to your ObjectPath ObjectPath: /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATERIAL_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP