Model

sapimclient.model

Data models for Python SAP Incentive Management Client.

Read the API Documentation

Visit https://{TENANT}.callidusondemand.com/APIDocument to read the full specification, replacing TENANT with your tenant-id.

Most of these models are undocumented. For a complete list of attributes, refer to the API documentation. Attribute names are converted to snake_case to follow standard python conventions.

All models support the read methods of Tenant, refer to the API documentation for a full list of supported methods.

Base

sapimclient.model.base

Pydantic models for Python SAP Incentive Management Client.

Pydantic models for Python SAP Incentive Management Client.

These classes are generally not used directly but can be usefull for type checking and type hints. Used to inherrit function on all other models.

class sapimclient.model.base._BaseModel[source]

Bases: BaseModel

BaseModel inherited from pydantic.BaseModel.

Contains the primary model_config which is required for Pydantic to convert field names between snake_case and camelCase when sending and recieving json data from/to the SAP Incentive Management tenant.

classmethod typed_fields(typed: type | tuple[type, ...]) dict[str, FieldInfo][source]

Return model fields of the specified type.

This method can be usefull when converting data types for example.

Returns:

A dictionary of attributes annotated with the specified type where the keys are attribute names and the values are FieldInfo objects.

class sapimclient.model.base.Endpoint[source]

Bases: _BaseModel

Base class for resources that can connect with the client.

Parameters:

attr_endpoint (str) – URI endpoint to connect with tenant. Must follow format api/v2/nameOfResource. Used by the client to construct the full request url.

classmethod expands() dict[str, FieldInfo][source]

Return model fields that refer to another model class.

This function is primarily used by the client to add the expand parameter to the request.

Returns:

A dictionary of attributes that can be expanded where the keys are attribute names and the values are FieldInfo objects.

class sapimclient.model.base.Resource[source]

Bases: Endpoint

Base class for a resource.

Every resource has it’s own attribute that uniquely identifies the object on the tenant. Inheritance of this class allows us to refer to the system unique identifier without having to address it directly.

Example

Attributes seq and credit_seq are equal:

assert Credit.seq == Credit.credit_seq
Parameters:

attr_seq (str) – Name of attribute that contains the system unique identifier (seq).

property seq: str | None

System unique identifier (seq) of the resource instance.

class sapimclient.model.base.AdjustmentContext[source]

Bases: _BaseModel

Adjustment Context for SalesTransaction.

Used only when updating the value of a SalesTransaction.

Parameters:
  • adjust_type_flag (Literal["adjustTo", "adjustBy", "reset"]) –

    • adjustTo

    • adjustBy

    • reset

  • adjust_to_value (Value | None) – Adjust value to this amount.

  • adjust_by_value (Value | None) – Adjust value by this amount.

  • comment (str | None) – Adjustment comment.

class sapimclient.model.base.Value[source]

Bases: _BaseModel

Value object used by all numeric fields.

Parameters:
class sapimclient.model.base.ValueClass[source]

Bases: _BaseModel

Value Class, used only by UnitType.

Parameters:

display_name (str) – Name of the value class.

class sapimclient.model.base.ValueUnitType[source]

Bases: _BaseModel

Unit Type of for Value.

Parameters:
  • name (str) – Name of the unit type.

  • unit_type_seq (str) – System unique identifier.

class sapimclient.model.base.Reference[source]

Bases: Expandable

Expanded reference to a resource.

Parameters:
  • key (str) – System unique identifier for the referred resource.

  • display_name (str) – Name of the referred resource.

  • object_type (type[model.Resource]) – Class of the referred resource.

  • key_string (str) – Seems to always be the same as key.

  • logical_keys (dict[str, str | int | Value | Any]) – Some key attributes of the referred resource.

class sapimclient.model.base.Assignment[source]

Bases: _BaseModel

Assignment.

Used by Pipeline to refer to stage tables and by Plan, Title and Position to refer to Variable Assignments.

Parameters:
  • key (str | None) – Not sure really.

  • owned_key (str | None) – Also not sure really.

TODO: Is this an expandable reference?

class sapimclient.model.base.BusinessUnitAssignment[source]

Bases: _BaseModel

Business Unit Assignment.

Used by AuditLog and Rule to refer to Business Units.

Parameters:
  • mask (int) – Not sure really.

  • smask (int) – Seems to be the same as mask.

TODO: Is this an expandable reference?

class sapimclient.model.base.RuleUsage[source]

Bases: _BaseModel

Rule Usage.

Used by Rule and Rule Elements for some reason.

Parameters:
  • id (str) – ID

  • name (str) – Name

TODO: Is this an expandable reference?

class sapimclient.model.base.RuleUsageList[source]

Bases: _BaseModel

List of RuleUsage.

Parameters:

children (list[RuleUsage]) – List of RuleUsage elements.

TODO: Is this an expandable reference? TODO: Make this class accessible as iterator of RuleUsage.

class sapimclient.model.base.SalesTransactionAssignment[source]

Bases: Expandable, Generic16Mixin

Expanded reference to a transaction assignment.

Parameters:
  • payee_id (str | None) – Participant ID assigned to the transaction.

  • position_name (str | None) – Position Name assigned to the transaction.

  • title_name (str | None) – Title Name assigned to the transaction.

  • sales_order (str | None) – Order ID of the transaction.

  • sales_transaction_seq (str) – System unique identifier of the transaction.

  • set_number (int | None) – Index of the Assignment.

  • compensation_date (datetime | None) – Compensation Date of the transaction.

  • processing_unit (str | None) – System unique identifier of the Processing Unit.

  • ga{1-16} (str | None) – Generic Attributes.

  • gn{1-6} (Value | None) – Generic Numbers.

  • gd{1-6} (datetime | None) – Generic Dates.

  • gb{1-6} (bool | None) – Generic Booleans.

Data Type

sapimclient.model.data_type

Pydantic models for Data Type Resources.

Pydantic models for Data Type Resources.

class sapimclient.model.data_type._DataType[source]

Bases: Resource

Base class for DataType resources.

class sapimclient.model.data_type.CreditType[source]

Bases: _DataType

Credit Type.

class sapimclient.model.data_type.EarningCode[source]

Bases: _DataType

Earning Code.

class sapimclient.model.data_type.EarningGroup[source]

Bases: _DataType

Earning Group.

class sapimclient.model.data_type.EventType[source]

Bases: _DataType

Event Type.

class sapimclient.model.data_type.FixedValueType[source]

Bases: _DataType

Fixed Value Type.

class sapimclient.model.data_type.PositionRelationType[source]

Bases: _DataType

Position Relation Type.

class sapimclient.model.data_type.Reason[source]

Bases: _DataType

Reason.

class sapimclient.model.data_type.StatusCode[source]

Bases: _DataType

Status Code.

class sapimclient.model.data_type.UnitType[source]

Bases: _DataType

Unit Type.

Rule Elements

sapimclient.model.rule_element

Pydantic models for Rule Element Resources.

Pydantic models for Rule Element Resources.

class sapimclient.model.rule_element._RuleElement[source]

Bases: Resource

Base class for Rule Element resources.

TODO: What does owning_element represent?

class sapimclient.model.rule_element.Category[source]

Bases: _RuleElement, Generic16Mixin

Category.

class sapimclient.model.rule_element.FixedValue[source]

Bases: _RuleElement

Fixed Value.

class sapimclient.model.rule_element.CFixedValue[source]

Bases: FixedValue

Alias for FixedValue.

class sapimclient.model.rule_element.FixedValueVariable[source]

Bases: _RuleElement

Fixed Value Variable.

class sapimclient.model.rule_element.Formula[source]

Bases: _RuleElement

Formula.

class sapimclient.model.rule_element.RelationalMDLT[source]

Bases: _RuleElement

Relational MDLT (Lookup Table).

Multi Dimensional Lookup Table.

TODO: Does this endpoint return default_element? TODO: Are dimensions and indices expandable? TODO: What does expression_type_counts represent?

class sapimclient.model.rule_element.LookUpTableVariable[source]

Bases: _RuleElement

LookUp Table Variable.

class sapimclient.model.rule_element.RateTable[source]

Bases: _RuleElement

Rate Table.

TODO: Does this endpoint return default_element?

class sapimclient.model.rule_element.RateTableVariable[source]

Bases: _RuleElement

Rate Table Variable.

class sapimclient.model.rule_element.Territory[source]

Bases: _RuleElement

Territory.

class sapimclient.model.rule_element.TerritoryVariable[source]

Bases: _RuleElement

Territory Variable.

class sapimclient.model.rule_element.Variable[source]

Bases: _RuleElement

Variable.

TODO: What does default_element refer to?

Rule Element Owners

sapimclient.model.rule_element_owner

Pydantic models for Rule Element Owner Resources.

Pydantic models for Rule Element Owner Resources.

class sapimclient.model.rule_element_owner._RuleElementOwner[source]

Bases: Resource

Base class for Rule Element Owner resources.

TODO: variable_assignments should be Reference? TODO: business_units should be Reference?

class sapimclient.model.rule_element_owner.Plan[source]

Bases: _RuleElementOwner

Plan.

Parameters:
  • rule_element_owner_seq (str | None) – System Unique Identifier.

  • name (str) – Name of the plan.

  • description (str | None) – Description of the plan.

  • calendar (str | Reference) – Reference to Calendar associated with the plan.

  • effective_start_date (datetime) – Effective start date of the plan version.

  • effective_end_date (datetime) – Effective end date of the plan version.

  • create_date (datetime | None) – Date when plan was created.

  • created_by (str | None) – User ID that created the plan.

  • modified_by (str | None) – User ID that last modified the plan.

  • business_units (list[str] | None) – Business units associated with the plan.

  • variable_assignments (list[Assignment] | Assignment | None) – Variable Assignments on the plan level.

  • model_seq (str | None) – System Unique Identifier for the model.

TODO: Add GenericMixin? TODO: is variable_assignments expandable?

class sapimclient.model.rule_element_owner.Position[source]

Bases: _RuleElementOwner, Generic16Mixin

Position.

TODO: target_compensation is Value? TODO: processing_unit should be Reference?

class sapimclient.model.rule_element_owner.Title[source]

Bases: _RuleElementOwner, Generic16Mixin

Title.

Resource

sapimclient.model.resource

Pydantic models for Resources.

Hint

See Examples

Pydantic models for Resources.

class sapimclient.model.resource.AppliedDeposit[source]

Bases: Resource

AppliedDeposit.

Note

Supports only read operations.

class sapimclient.model.resource.AuditLog[source]

Bases: Resource

Audit Log.

Note

Supports only read operations.

class sapimclient.model.resource.Balance[source]

Bases: Resource

Balance.

Note

Supports only read operations.

class sapimclient.model.resource.BusinessUnit[source]

Bases: Resource

Business Unit.

class sapimclient.model.resource.Calendar[source]

Bases: Resource

Calendar.

class sapimclient.model.resource.CategoryClassifier[source]

Bases: Resource

categoryClassifier.

class sapimclient.model.resource.CategoryTree[source]

Bases: Resource

CategoryTree.

class sapimclient.model.resource.Commission[source]

Bases: Resource

Commission.

TODO: No results.

class sapimclient.model.resource.Credit[source]

Bases: Resource, Generic16Mixin

Credit.

class sapimclient.model.resource.Deposit[source]

Bases: Resource, Generic16Mixin

Deposit.

class sapimclient.model.resource.EarningGroupCode[source]

Bases: Resource

EarningGroupCode.

class sapimclient.model.resource.GenericClassifier[source]

Bases: Resource, Generic16Mixin

Generic Classifier.

class sapimclient.model.resource.GenericClassifierType[source]

Bases: Resource

Generic Classifier Type.

class sapimclient.model.resource.GlobalFieldName[source]

Bases: Resource

Global Field Name.

class sapimclient.model.resource.Incentive[source]

Bases: Resource, Generic16Mixin

Incentive.

class sapimclient.model.resource.Measurement[source]

Bases: Resource, Generic16Mixin

Measurement.

class sapimclient.model.resource.PrimaryMeasurement[source]

Bases: Measurement

Primary Measurement.

class sapimclient.model.resource.SecondaryMeasurement[source]

Bases: Measurement

Secondary Measurement.

class sapimclient.model.resource.Message[source]

Bases: Resource

Message.

class sapimclient.model.resource.MessageLog[source]

Bases: Resource

Message Log.

class sapimclient.model.resource.Participant[source]

Bases: Resource, Generic16Mixin

Participant.

class sapimclient.model.resource.PaymentMapping[source]

Bases: Resource

Payment Mapping.

class sapimclient.model.resource.PaymentSummary[source]

Bases: Resource

Payment Summary.

class sapimclient.model.resource.Period[source]

Bases: Resource

Period.

class sapimclient.model.resource.PeriodType[source]

Bases: Resource

Period Type.

class sapimclient.model.resource.Pipeline[source]

Bases: Resource

Pipeline.

class sapimclient.model.resource.PositionGroup[source]

Bases: Resource

Position.

class sapimclient.model.resource.PositionRelation[source]

Bases: Resource

Position Relation.

class sapimclient.model.resource.PostalCode[source]

Bases: Resource, Generic16Mixin

Postal Code.

class sapimclient.model.resource.ProcessingUnit[source]

Bases: Resource

Processing Unit.

class sapimclient.model.resource.Product[source]

Bases: Resource, Generic16Mixin

Product.

class sapimclient.model.resource.Quota[source]

Bases: Resource

Quota.

class sapimclient.model.resource.SalesOrder[source]

Bases: Resource, Generic16Mixin

Sales Order.

class sapimclient.model.resource.SalesTransaction[source]

Bases: Resource, Generic32Mixin

Sales Transaction.

class sapimclient.model.resource.User[source]

Bases: Resource

User.

class sapimclient.model.resource.PlanComponent[source]

Bases: Resource

Plan.

class sapimclient.model.resource.Rule[source]

Bases: Resource

Rule.

class sapimclient.model.resource.CreditRule[source]

Bases: Rule

Alias for Rule.

class sapimclient.model.resource.CommissionRule[source]

Bases: Rule

Alias for Rule.

class sapimclient.model.resource.DepositRule[source]

Bases: Rule

Alias for Rule.

class sapimclient.model.resource.MeasurementRule[source]

Bases: Rule

Alias for Rule.

Pipeline

sapimclient.model.pipeline

Pydantic models for Pipeline jobs.

Hint

See example Run Comp & Pay

Pydantic models for Pipeline jobs.

class sapimclient.model.pipeline._PipelineJob[source]

Bases: Endpoint

Base class for a Pipeline Job.

class sapimclient.model.pipeline.ResetFromValidate[source]

Bases: _PipelineJob

Run a ResetFromValidate pipeline.

class sapimclient.model.pipeline.Purge[source]

Bases: _PipelineJob

Run a Purge pipeline.

class sapimclient.model.pipeline.XMLImport[source]

Bases: _PipelineJob

Run an XML Import pipeline.

class sapimclient.model.pipeline._PipelineRunJob[source]

Bases: _PipelineJob

Base class for a PipelineRun job.

class sapimclient.model.pipeline.Classify[source]

Bases: _PipelineRunJob

Run a Classify pipeline.

class sapimclient.model.pipeline.Allocate[source]

Bases: _PipelineRunJob

Run an Allocate pipeline.

class sapimclient.model.pipeline.Reward[source]

Bases: _PipelineRunJob

Run a Reward pipeline.

class sapimclient.model.pipeline.Pay[source]

Bases: _PipelineRunJob

Run a Pay pipeline.

class sapimclient.model.pipeline.Summarize[source]

Bases: _PipelineRunJob

Run a Summarize pipeline.

class sapimclient.model.pipeline.Compensate[source]

Bases: _PipelineRunJob

Run a Compensate pipeline.

class sapimclient.model.pipeline.CompensateAndPay[source]

Bases: _PipelineRunJob

Run a CompensateAndPay pipeline.

class sapimclient.model.pipeline.ResetFromClassify[source]

Bases: _PipelineRunJob

Run a ResetFromClassify pipeline.

class sapimclient.model.pipeline.ResetFromAllocate[source]

Bases: _PipelineRunJob

Run a ResetFromAllocate pipeline.

class sapimclient.model.pipeline.ResetFromReward[source]

Bases: _PipelineRunJob

Run a ResetFromReward pipeline.

class sapimclient.model.pipeline.ResetFromPay[source]

Bases: _PipelineRunJob

Run a ResetFromPay pipeline.

class sapimclient.model.pipeline.Post[source]

Bases: _PipelineRunJob

Run a Post pipeline.

class sapimclient.model.pipeline.Finalize[source]

Bases: _PipelineRunJob

Run a Finalize pipeline.

class sapimclient.model.pipeline.ReportsGeneration[source]

Bases: _PipelineRunJob

Run a ReportsGeneration pipeline.

class sapimclient.model.pipeline.UndoPost[source]

Bases: _PipelineRunJob

Run a UndoPost pipeline.

class sapimclient.model.pipeline.UndoFinalize[source]

Bases: _PipelineRunJob

Run a UndoFinalize pipeline.

class sapimclient.model.pipeline.CleanupDefferedResults[source]

Bases: _PipelineRunJob

Run a CleanupDefferedResults pipeline.

class sapimclient.model.pipeline.UpdateAnalytics[source]

Bases: _PipelineRunJob

Run a UpdateAnalytics pipeline.

class sapimclient.model.pipeline._ImportJob[source]

Bases: _PipelineJob

Base class for an Import job.

class sapimclient.model.pipeline.Validate[source]

Bases: _ImportJob

Run a Validate pipeline.

class sapimclient.model.pipeline.Transfer[source]

Bases: _ImportJob

Run a Transfer pipeline.

class sapimclient.model.pipeline.ValidateAndTransfer[source]

Bases: _ImportJob

Run a ValidateAndTransfer pipeline.

class sapimclient.model.pipeline.ValidateAndTransferIfAllValid[source]

Bases: _ImportJob

Run a ValidateAndTransferIfAllValid pipeline.

class sapimclient.model.pipeline.TransferIfAllValid[source]

Bases: _ImportJob

Run a TransferIfAllValid pipeline.