|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% W! r+ p( V0 i5 z$ W) W
Teamcenter ITK二次开发源码分享: 创建一个工作流0 N0 e6 K' ]! C( v9 P* v
) q, A. m& m u1 T( g4 R- /*HEAD CREATE_A_PROCESS CCC ITK */
* \4 p3 ^4 C6 P# F9 G& u - #include <stdlib.h>
9 i6 ^. E% Y. H3 ?: u6 | - #include <TCcore/aom.h>! C% o4 {9 L- q$ M1 d5 ]8 c- E7 t! C
- #include <tc/emh.h>
& f4 Q$ T: {* S: U& [& H* \ - #include <epm/epm.h>
2 |! w: w- r6 @& i* b6 }7 p6 s - #include <tc/tc.h>; S# D7 ?' l3 `, q
- #include <sa/tcfile.h>
3 e& c+ p d4 L# h - #include <itk/mem.h>; ~- n+ O. A; v) m0 s+ }9 c: v8 Y
7 \1 r! G0 W5 I! C* v. z- #define EXIT_FAILURE 1
) c0 M2 a9 M: }: G, P- k* U - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))- M5 N) h' I0 {& |3 G; l: G: b& M, @& R
- static void report_error( char *file, int line, char *function, int return_code)" ^ ^' h4 z* [' f. r/ s/ T
- {
# R0 e" B$ `" T4 V- K- F - if (return_code != ITK_ok), ~$ e' t+ J6 k- k0 |3 l, p
- {. i C# A7 s K1 @4 R/ i b
- char *error_message_string;
8 ~, P8 A |; v* F - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
0 y: F! ?0 T, m$ |. q - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
* @% h- M+ l6 C- U - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);- [. b4 f# Z$ Z* E0 w: o. }( z
- if(error_message_string) MEM_free(error_message_string);
! _* A* _5 O+ \1 v - printf("\nExiting program!\n");5 B' c _8 n$ A2 |3 L
- exit (EXIT_FAILURE);
6 x# n8 n! h, w - } [4 M- Q# \7 ~2 Z6 w. u* f
- }0 E9 v8 V. P- I9 |
- . D5 t9 }( {% x! d. f! H' F
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))% G2 q5 e2 P' y# C; q! O5 S
- static void check_value( char *function, int value )7 s6 S0 O' z2 f) {# E
- {2 |% D& S) y# I8 R0 Z
- if (value == 0)
7 d6 s+ a2 o9 f. q3 M2 S* p - {* n, W2 ^6 ]% R& `4 t
- printf ("\t%s is NULL\n", function);
/ w) c4 a5 D; @ Y - printf("\nExiting program!\n");
/ s: D6 B2 Y* t) ? - exit (EXIT_FAILURE);
f0 o% T) q: l, v - }/ g* |# P4 g m6 @
- }
! \! q1 q6 L5 J8 N+ A" f0 R# y' a3 |! `) L - ; `3 l" z& Z/ @1 X, [$ `5 I
- - |4 S: M% d) Y. H
- static void do_it(void), z! d! n) c R! T# j
- {
+ @2 j: \3 B, ~, k3 t* f - int ) [% J6 Q. O- L% `" |" Q7 G
- attach_types[1] = {1};+ d& z) }% ?9 Z* |
- tag_t
, N( y7 j: R3 N' I; P/ i7 _ - rev = NULLTAG, 8 H+ r5 D' s) }% l: r: T8 j
- process_template = NULLTAG,
2 n+ m$ `1 r( E3 X8 q6 N - process = NULLTAG;
" ]. r$ c' j5 u) D$ m - % [) }$ z5 m0 x2 e( @+ c7 Y( A: C2 w
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
( B/ \8 W+ G* o5 Z- g3 i - EXIT_IF_NULL( rev );
4 B0 f. A6 J& Y3 w7 N
2 `& a$ B. @, r8 ^8 J- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
4 z! p& D( o4 v% C - EXIT_IF_NULL( process_template );
" {, }, f( J- V, y- p4 _5 a: V/ C - " Q& f; |$ K$ q+ T Y
8 G3 r6 [3 t8 f* m A& a! b- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
- d+ [: T' D8 p* R: K: _! n - attach_types, &process) );) `% t A; C4 r" u. n
- % z9 g, F9 Y" s0 [
- EXIT_IF_NULL( process );) B1 u! M( [2 m; a
- } ^6 ~ b' Z& G3 n" y6 W5 N
- # y7 Q1 l% S* D) ~2 \: D
- int ITK_user_main(int argc, char* argv[])# S+ t2 g" [$ d8 b- z. Q
- {! {$ G, f ^: Q
- int$ {+ Z, S4 {2 }4 ^ y5 N* Y
- status = 0; & b ^ l/ y3 o) F5 L* f+ L/ v
-
& s4 t! O5 h& ~ ` - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );1 q9 X/ p" p" n. D) S/ A, y, O3 G- t0 `
- status = ITK_auto_login();
7 ?1 R1 k ^0 t( y7 Q% }8 k# R* s - & I m# b3 f) D5 o; H7 P4 T
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
" F w6 P/ \' ? _ - else
- g/ e2 q7 i: _" \ - {
f8 {( v; K s' r% I - printf("\nLogin successful!\n\n");
4 Q+ k6 E8 I# a% P9 n - ITK_set_journalling(TRUE);
: J( Q- y) K( V. D( | D R - do_it();
9 G* N/ Y) s: H+ k* R& y4 k: Z# l - }* {3 N8 ]: ]+ [) \2 G4 W# c: \
- ITK_exit_module(TRUE);
0 H. H0 j& S4 m& W0 V7 t - return status;( F4 d! u" C) v
- }
复制代码
$ B0 Z) }! d( V) X( h5 a! J8 q& Z& [- D/ f$ B
" z3 v- @- A* q8 a |
|