Wednesday, August 6, 2025

Print Multiple Smartform from Driver Program

 REPORT ZPRIMT_MUL_SMARTFORMS.


DATA :  FM_NAME  TYPE RS38L_FNAM,
        CONTROL_PARAMETERS  TYPE  SSFCTRLOP,
        OUTPUT_OPTIONS  TYPE SSFCOMPOP,
        JOB_OUTPUT_INFO TYPE  SSFCRESCL.

types : begin of tp_itab,
        name(50),
        date(8),
        amt(15),
        end of tp_itab.

data : gt_itab type STANDARD TABLE OF tp_itab,
       gs_itab type tp_itab,
       gv_cnt type i,
       gv_cnt2 type i.


DATA : GV_FILE  TYPE STRING,
       GV_FLAG  TYPE FLAG,
       GV_FLAG1 TYPE FLAG.



SELECTION-SCREEN begin of BLOCK b1 WITH FRAME TITLE text-001.
 PARAMETERS : IP_NAME  TYPE CHAR100,
              IP_CDATE  TYPE  SYDATUM,
              IP_AMT  TYPE  PC207-BETRG.
SELECTION-SCREEN skip.
PARAMETERS : P_FILE    TYPE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN end of BLOCK b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

*  PERFORM get_file_path CHANGING filename.
  CALL FUNCTION 'F4_FILENAME'
*    EXPORTING
*      PROGRAM_NAME  = SYST-CPROG
*      DYNPRO_NUMBER = SYST-DYNNR
*      FIELD_NAME    = ''
    IMPORTING
      FILE_NAME = P_FILE.


START-OF-SELECTION.

 if P_FILE is NOT INITIAL.

   GV_FILE = P_FILE.
  CLEAR : GT_ITAB[].

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      FILENAME                = GV_FILE
      FILETYPE                = 'ASC'
      HAS_FIELD_SEPARATOR     = 'X'
*     HEADER_LENGTH           = 0
*     READ_BY_LINE            = 'X'
*     DAT_MODE                = ' '
*     CODEPAGE                = ' '
*     IGNORE_CERR             = ABAP_TRUE
*     REPLACEMENT             = '#'
*     CHECK_BOM               = ' '
*     VIRUS_SCAN_PROFILE      =
*     NO_AUTH_CHECK           = ' '
*  IMPORTING
*     FILELENGTH              =
*     HEADER                  =
    TABLES
      DATA_TAB                = GT_ITAB[]
*  CHANGING
*     ISSCANPERFORMED         = ' '
    EXCEPTIONS
      FILE_OPEN_ERROR         = 1
      FILE_READ_ERROR         = 2
      NO_BATCH                = 3
      GUI_REFUSE_FILETRANSFER = 4
      INVALID_TYPE            = 5
      NO_AUTHORITY            = 6
      UNKNOWN_ERROR           = 7
      BAD_DATA_FORMAT         = 8
      HEADER_NOT_ALLOWED      = 9
      SEPARATOR_NOT_ALLOWED   = 10
      HEADER_TOO_LONG         = 11
      UNKNOWN_DP_ERROR        = 12
      ACCESS_DENIED           = 13
      DP_OUT_OF_MEMORY        = 14
      DISK_FULL               = 15
      DP_TIMEOUT              = 16
      OTHERS                  = 17.
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.


 ENDIF.

    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        FORMNAME                 = 'ZCHEQUE_PRINT1'
*       VARIANT                  = ' '
*       DIRECT_CALL              = ' '
     IMPORTING
       FM_NAME                  = FM_NAME
     EXCEPTIONS
       NO_FORM                  = 1
       NO_FUNCTION_MODULE       = 2
       OTHERS                   = 3
              .
    IF SY-SUBRC <> 0.
* Implement suitable error handling here
    ENDIF.

    describe table gt_itab lines gv_cnt.


  IF FM_NAME IS NOT INITIAL.

    loop at gt_itab into gs_itab.

    if gv_cnt ne 1.

    gv_cnt2 = sy-tabix .
    case gv_cnt2.
    when '1'.
    control_parameters-no_open   = space.
    control_parameters-no_close  = 'X'.
    when gv_cnt .
    control_parameters-no_open   = 'X'.
    control_parameters-no_close  = space.
    when others.
    control_parameters-no_open   = 'X'.
    control_parameters-no_close  = 'X'.
    endcase.

    endif.

    CONTROL_PARAMETERS-PREVIEW    = 'X'.
*    CONTROL_PARAMETERS-GETOTF    = 'X'.   "to get otf data

    CONTROL_PARAMETERS-NO_DIALOG  = 'X'.
    OUTPUT_OPTIONS-TDDEST         = 'LP01'.

    ip_name   = gs_itab-NAME.
    IP_CDATE  = gs_itab-DATE.
    CONDENSE gs_itab-AMT.
    IP_AMT = gs_itab-AMT.

  CALL FUNCTION FM_NAME             "'/1BCDWB/SF00000259'
   EXPORTING
*     ARCHIVE_INDEX              =
*     ARCHIVE_INDEX_TAB          =
*     ARCHIVE_PARAMETERS         =
     CONTROL_PARAMETERS         = CONTROL_PARAMETERS
*     MAIL_APPL_OBJ              =
*     MAIL_RECIPIENT             =
*     MAIL_SENDER                =
     OUTPUT_OPTIONS             = OUTPUT_OPTIONS
     USER_SETTINGS              = 'X'
     IP_NAME                    = IP_NAME
     IP_CDATE                   = IP_CDATE
     IP_AMOUNT                  = IP_AMT
*   IMPORTING
*     DOCUMENT_OUTPUT_INFO       =
*     JOB_OUTPUT_INFO            = JOB_OUTPUT_INFO
*     JOB_OUTPUT_OPTIONS         =
   EXCEPTIONS
     FORMATTING_ERROR           = 1
     INTERNAL_ERROR             = 2
     SEND_ERROR                 = 3
     USER_CANCELED              = 4
     OTHERS                     = 5
            .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

*   CALL FUNCTION 'HR_IT_DISPLAY_WITH_PDF'
**    EXPORTING
**      IV_PDF          =
*    TABLES
*      OTF_TABLE       = JOB_OUTPUT_INFO-OTFDATA.

    endloop.

  ENDIF.
END-OF-SELECTION.

Thursday, May 15, 2025

Overview of SAP C4C

 Overview of SAP C4C





SAP Cloud for Customer (C4C) is a cloud-based software that maintains customer sales, customer service, and marketing activities efficiently and is one of the main SAP solutions to manage customer relationships.

The target groups of SAP C4C are therefore all areas of the company that have contact points with customers essentially sales, marketing, and service.

SAP C4C is based upon the following individual products:

Ø             SAP Cloud for Sales

Ø             SAP Cloud for Marketing

Ø             SAP Cloud for Social Engagement

Features of SAP C4C:

Ø         Sales Force Automation

Ø         Marketing Automation

Ø         Customer Service and Support

Ø         Analytics and Reporting

Ø         Extended CRM Capabilities

Ø         Product Technology

SAP C4C solution can be simply integrated with SAP ERP and CRM on-premise solution. There are two ways of integration as follows:

· SAP Process Integration PI/PO − This integration is recommended when you are already utilizing process integration for on-premise systems.

· SAP HANA Cloud Integration HCI − This integration is suggested when you have to perform cloud-to-cloud integration.

Advantages of SAP C4C:

· Consume less time and money for its development — Utilizing the SAP C4C (Cloud for Customer) can save the users time as it is an integration content, executing all the hard work for its users. It contains converging all messages, mappings, and interfaces to different adapters for distinct scenarios.

· A minimal portion of configuration is all a user ever requires to identify adapters’ connection in detail, such as permitting their current landscape to sustain the integration, offering a way to essential firewalls, and organizing proxies or reverse proxies whenever needed.

· Classic SAP C/4 HANA integrations as a template — Marketers can reduce the development duration while combining a third-party system with the enterprise landscape by employing a template C/4 HANA reporting, HR, and marketing means.

· Content gets automatically updated in line with each C/4 HANA release — It is an important advantage for consultants and developers when new content gets released routinely, as it trims project timelines, thus lowering the workload.

· SAP C/4 HANA also avoid its users from retaining to rebuilding all their interfaces from scratch — This same standard integration content, SAP C4C, can efficiently be extended, if its user requires additional fields.

Summary:

SAP C4C (Cloud for Customer) outperformed the average CRM solution in nearly every module we analyzed. It particularly excelled in the extended CRM, analytics, and customer service modules with a toolkit that can benefit most organizations. It is important to keep in mind that this features and function analysis assesses the number of available features with each product over the detailed real-world application of each functionality. Any software solution’s benefits will depend on metrics that include an organization’s respective budget, limitations, and business goals.